原文作者:aircraft

原文地址:https://www.cnblogs.com/DOMLX/p/9530834.html

首先是配置:

  

使用VS2013创建工程。

将libs中的python27.lib复制一份重命名为python27_d.lib(这个的原因是include目录下的pyconfig.h里面的代码再debug下调用的是python27_d.lib)。否则会出现以下错误:

点击项目右键,在属性->c/c++->常规项->附加包含目录中添加..\include。在属性->链接器->常规->附加库依赖中添加..\libs。在属性->链接器->输入->附加依赖项中添加python27_d.lib。

按照以上步骤就会将其已经配置好了。这时候就可以进行测试了。

(若出错 >LINK : fatal error LNK1104: 无法打开文件“python27_d.lib”)就是上面的原因

注意 你们复制粘贴可能会吧TAB 变成空格 导致报错 自己缩进全部删除调一调

    #include "stdafx.h"
#include <python.h> int main()
{
Py_Initialize(); //调用Py_Initialize()进行初始化
PyRun_SimpleString("print 'Hello World!!'");
Py_Finalize(); //调用Py_Finalize,和Py_Initialize相对应的.
     system("pause");
return 0;
}

1>pythonIniti.obj : error LNK2019: 无法解析的外部符号 __imp___Py_NegativeRefcount,该符号在函数 "public: __thiscall boost::python::api::object_base::~object_base(void)" (??1object_base@api@python@boost@@QAE@XZ) 中被引用
1>pythonIniti.obj : error LNK2001: 无法解析的外部符号 __imp___Py_RefTotal

解决方法

修改两个头文件

1 注释掉object.h第56行

//#define Py_TRACE_REFS

2 pyconfig.h 375行

//#    define Py_DEBUG

以上两个宏定义注释掉以后重新编译 问题解决

如果还不能解决那么可能是因为版本问题 python 是release版本的

正式版本编译没有问题,问题在于我们安装的是release版本的python

找到 python的安装目录 c:/python25/include/pyconfig.h,注释掉以下代码

    1. //#ifdef _DEBUG
    2. //# define Py_DEBUG
    3. //#endif

这样让它无论是debug版本还是release版,都按照release版本来做lib库的链接,这样问题解决,或者直接在VS下就用release跑试试

error LNK2001: 无法解析的外部符号 __imp_PyString_FromString
error LNK2001: 无法解析的外部符号 __imp_PyCallable_Check

error LNK2001: 无法解析的外部符号 __imp_PyObject_CallObject
error LNK2001: 无法解析的外部符号 __imp_Py_Initialize

error LNK2001: 无法解析的外部符号 __imp_Py_IsInitialized

error LNK2001: 无法解析的外部符号 __imp_PyImport_Import

error LNK2001: 无法解析的外部符号 __imp_PyModule_GetDict

error LNK2001: 无法解析的外部符号 __imp_PyDict_GetItemString

error LNK2001: 无法解析的外部符号 __imp_PyRun_SimpleStringFlags

error LNK2001: 无法解析的外部符号 __imp_Py_Finalize

fatal error LNK1120: 10 个无法解析的外部命令

解决办法:查看自己的python 版本与VS编译的版本是否一样,比如很多人是64位的电脑 就下载了 64的python

而VS默认编译是WIN32的  这时候把项目属性的  运行平台改成 X64就行了  注意了改变之后可能你的属性表要重新配置一遍了,因为之前你可能是在WIN32下配置的

若有兴趣交流分享技术,可关注本人公众号,里面会不定期的分享各种编程教程,和共享源码,诸如研究分享关于c/c++,python,前端,后端,opencv,halcon,opengl,机器学习深度学习之类有关于基础编程,图像处理和机器视觉开发的知识

vs2013下c++调用python脚本函数 出现的一些问题总结的更多相关文章

  1. C 语言调用python 脚本函数

    刚好几个月前做过,C++ 函数里面先加载python 脚本,再调用 里面的 def 函数,我把代码贴出来,你在main 函数里面,调用getDataByScript 函数,另外相同目录下放一个 fuc ...

  2. Window环境下,PHP调用Python脚本

    参考 php调用python脚本*** php 调用 python脚本的方法 解决办法:php提供了许多调用其他脚本或程序的方法,比如exec/system/popen/proc_open/passt ...

  3. (转)java调用python脚本

    这篇博客旨在吐血分享今天遇到的java调用python脚本遇到的坑,折腾了3个多小时终于可以跑通了,代码超级短,但网上的好多资料都是抄来抄去的,很少有能够直接跑通的,尤其是针对你的python文件中用 ...

  4. C#调用Python脚本的简单示例

    C#调用Python脚本的简单示例 分类:Python (2311)  (0)  举报  收藏 IronPython是一种在 .NET及 Mono上的 Python实现,由微软的 Jim Huguni ...

  5. Java调用Python脚本并获取返回值

    在Java程序中有时需要调用Python的程序,这时可以使用一般的PyFunction来调用python的函数并获得返回值,但是采用这种方法有可能出现一些莫名其妙的错误,比如ImportError.在 ...

  6. 通过Java调用Python脚本

    在进行开发的过程中,偶尔会遇到需要使用Java调用Python脚本的时候,毕竟Python在诸如爬虫,以及科学计算等方面具有天然的优势.最近在工作中遇到需要在Java程序中调用已经写好的Python程 ...

  7. Matlab 调用 Python 脚本

    Matlab 调用 Python 脚本 最近尝试在 Matlab 环境中调用 Python 脚本,这里总结下碰到的几个问题. 1. Python 模块加载 在 Matlab 函数中,想要将 Pytho ...

  8. linux+php+apache web调用python脚本权限问题解决方案

    lamp : linux + apache + mysql + php 在上篇随笔中linux+php+apache调用python脚本时出现的问题的根本原因是:apache运行时使用的apache用 ...

  9. PHP 调用Python脚本

    上次做用户反馈自动翻译,写了个python脚本,将日文的用户反馈翻译成中文,效果虽然可以,但其它不懂python的童鞋就没法使用了,所以搭了个web服务,让其他人可以通过网页访问查询.使用的是apac ...

随机推荐

  1. HTML 5+CSS 3网站布局应用教程 (赵振方) 随书光盘 ​

    <HTML5+CSS3网站布局应用教程>全面介绍HTML 5与CSS 3进行Web设计的知识.全书由16章组成.主要内容包括:主流浏览器对HTML 5的支持情况.HTML 5与HTML4在 ...

  2. Sharepoint2013搜索学习笔记之设置外网内容源(四)

    第一步,进入管理中心,点击管理应用程序,点击search service 应用程序进入到搜索管理配置页面,选择内容源 第二步,点击新建内容源,给内容源命名,在爬网内容类型中选网站,在爬网设置中选中仅对 ...

  3. 团队内的沟通方式:网络 OR 当面

    4月1日,我和老王稍微聊了聊关于互联网的工作方式,团队的成员不在一个地方,通过远程互联网的方式进行沟通是不是OK.现在确实有很多公司是有多地的分公司,子公司,不同的团队在不同的办公室中,甚至一个大团队 ...

  4. 20165219 2017-2018-2 《Java程序设计》第6周学习总结

    20165219 2017-2018-2 <Java程序设计>第6周学习总结 教材学习内容小结 第八章 String类 常用方法 public int length() 求字符串长度 pu ...

  5. linux下vim python代码自动补全

    一.vim python自动补全插件:pydiction 可以实现下面python代码的自动补全: 1.简单python关键词补全 2.python 函数补全带括号 3.python 模块补全 4.p ...

  6. django中ModelForm解决多表单组合显示问题

    一.多表单组合显示问题 在项目中用ModelForm生成页面时 当有多表单组合显示时,会显示全部的关联表单数据. 而在实际项目中可能会出现只想让用户选择部分数据,这时候这样的显示就有问题. 二.问题解 ...

  7. python中文件路径的问题

    慎用中文路径!慎重中文路径!!慎用中文路径!!! good = np.loadtxt(u'D:/feiq/feiq/Recv Files/Recv Files/LOS 数据集/good_user2', ...

  8. win10+anaconda环境下pyqt5+qt tools+eric6.18安装及汉化过程

    最近需要用python编写一个小程序的界面,选择了pyqt5+eric6的配套组合,安装过程中遇到一些坑,特此记录.参考书籍是电子工业出版社的<PyQt5快速开发与实战>. 因为我使用an ...

  9. 2008R2 无法安装 HDP Apache 系列服务解决方案

    执行下面的 PS 就好了. 特别是 第三行在执行的时候选择 [A]   Set-ExecutionPolicy "AllSigned" Enable-PSRemoting Set- ...

  10. iOS如何检测app从后台调回前台

    当按Home键,将应用放在后台之后,然后再次调用回来的时候,回出发AppDelegate里面的一个方法,-(void)applicationWillEnterForeground. 当应用再次回到后台 ...