得当

装了 VC++ 与 python 后,在环境变量中把PYTHON的INCLUDE和LIBS分别加入下面2个宏 

INCLUDE 

LIB 



请问加入这两个宏到环境变量中的具体步骤? 

----------------------------------------------------------------------

不太清楚... 

C++可以使用Boost.Python库。boost_python.lib. 
http://sourceforge.net/index.php 上可以找到boost 
www.boost.org 也可以上去看看 

--------------------------------------------------------

我的电脑 -> 右键属性 -> 高级 -> 环境变量 -> 添加 ||  编辑 

--------------------------------------------------------

http://python.cn/pipermail/python-chinese/2005-November/019669.html 

--------------------------------------------------------

请问: 
是要把 python 的 include 文件夹和 libs 文件夹的路径添加到系统变量的 path 变量中吗? 

或是在系统变量中增加 INCLUDE 和 LIB 两个变量?并填入 include 文件夹和 libs 文件夹的路径? 

--------------------------------------------------------

后者 


--------------------------------------------------------

我增加了这两个系统变量。 

我想编译以下代码: 


#include <Python.h>  

int main(int argc, char *argv)  

{  

Py_Initialize();  

PyRun_SimpleString("from time import time,ctime\n"  

"print 'Today is',ctime(time())\n");  

Py_Finalize();  

return 0;  

}  


根据一个上说:直接用CL 文件名编译就是。 
这里的CL 是指后缀名吗?vc 不能编译 cl 后缀的文件啊? 



--------------------------------------------------------


cl.exe是VC的命令行编译器。 


--------------------------------------------------------

我用 VC 编译以上代码, 

提示: fatal error C1083: Cannot open include file: 'python.h': No such file or directory 

请问为什么? 

--------------------------------------------------------

mark 

--------------------------------------------------------

PYTHON 与C相互交互调用实例解析 


使用前工具: 

Vc++编译器 

Python 解释器 

如没有装VC,可以去微软网站下一个C++的编译器,地址如下: 

http://download.microsoft.com/download/3/9/b/39bac755-0a1e-4d0b-b72c-3a158b7444c4/VCToolkitSetup.exe 

  

装完后,在环境变量中把PYTHON的INCLUDE和LIBS分别加入下面2个宏 

INCLUDE 

LIB 

  

1、C中调用PYTHON 

#include <Python.h>  

int main(int argc, char *argv)  

{  

Py_Initialize();  

PyRun_SimpleString("from time import time,ctime\n"  

"print 'Today is',ctime(time())\n");  

Py_Finalize();  

return 0;  

}  

直接用CL 文件名  编译就是 

  

2、用C生成DLL,用PYTHON调用 

C代码:如FOO.C 

#include <Python.h> 

/* Define the method table. */ 

static PyObject *foo_bar(PyObject *self, PyObject *args); 

static PyMethodDef FooMethods = { 

{"bar",  foo_bar, METH_VARARGS}, 

{NULL, NULL} 

}; 

/* Here's the initialization function.  We don't need to do anything 

for our own needs, but Python needs that method table. */ 

void initfoo() 



(void) Py_InitModule("foo", FooMethods); 



/* Finally, let's do something ... involved ... as an example function. */ 

static PyObject *foo_bar(PyObject *self, PyObject *args) 



char *string; 

int   len; 

if (!PyArg_ParseTuple(args, "s", &string)) 

return NULL; 

len = strlen(string); 

return Py_BuildValue("i", len); 



C定义文件:foo.def 

EXPORTS 

initfoo 

编译生成foo.dll 

Cl -c foo.c; 

link foo.obj /dll /def:foo.def /OUT:foo.dll  

在PYTHON中调用: 

Import foo 

Dir(foo) 

… 

即可以看到结果: 

>>> import foo 

>>> dir(foo) 



>>> ^Z 



--------------------------------------------------------

我就是参考了这篇文档,想在 C 中调用PYTHON,但用 VC 编译时 

提示: fatal error C1083: Cannot open include file: 'python.h': No such file or directory 


--------------------------------------------------------

你这个问题应该是找不到头文件 
你可以在工程中把python.h得路径加进去 



--------------------------------------------------------

请问 python.h 在 python 2.3 中的完整路径是什么? 

--------------------------------------------------------

请问 python.h 在 python 2.3 中的完整路径是什么? 
是 include 文件夹吗? 

我已在 vc 的 setting 中设置了 INCLUDE 和 LIB 变量的路径,仍不行? 

--------------------------------------------------------

C:\Python24\include 
这个是我的路径,加进去就可以了 

--------------------------------------------------------

我的路径是:  

E:\计算机\编程工具\Python2.3\include 
E:\计算机\编程工具\Python2.3\lib 

我在 VC 6.0 中的 Project -> settings -> Link 的 Object/library modules 中添加了 
E:\计算机\编程工具\Python2.3\lib 



在 Tools -> Options -> Dirictories -> show dirictories for -> include files 中添加了 
E:\计算机\编程工具\Python2.3\include 

在 Tools -> Options -> Dirictories -> show dirictories for -> Library files 中添加了 
E:\计算机\编程工具\Python2.3\lib 



编译时提示: 

Linking... 
LINK : fatal error LNK1104: cannot open file "E:\计算机\编程工具\Python2.3\lib.obj" 
Error executing link.exe. 

--------------------------------------------------------

不知哪儿错了?请指点! 

--------------------------------------------------------

加错地方了 
应该是在setting->c/c++ 
category的下拉菜单,本来是general ,换到preprocessor 
然后把路径加到addtional include derectories 

--------------------------------------------------------

还有,添加LIb要把文件指出来,不是路径 

--------------------------------------------------------

把lib直接加到工程试试,我刚才说的路径是加头文件,不是加LIB 

--------------------------------------------------------

我已照您说的将 include 添加到 setting->c/c++ 中了。 

编译时提示: 

Linking... 
LINK : fatal error LNK1104: cannot open file "python23_d.lib" 
Error executing link.exe. 


请问:"python23_d.lib" 具体该如何添加? 

--------------------------------------------------------

你把库加到工程中了么? 

--------------------------------------------------------

请问该如何添加到工程中?能详细讲讲吗? 

--------------------------------------------------------

在界面左边有一栏,在SOURCE FILES 点右键 add file to folder,找到库文件即可 

--------------------------------------------------------

我照您说的,将 /libs/python23 加到 SOURCE FILES 文件夹中,编译后 

提示: 

Linking... 
python23_d.lib : fatal error LNK1136: invalid or corrupt file 
Error executing link.exe. 

我在 /libs/ 中只找到 python23.lib,没看到 python23_d.lib 。 

不知上面的提示是何原因? 

--------------------------------------------------------

直接用python23.lib 

python23_d.lib应该是调试版的 

--------------------------------------------------------

set path, 

你没设备环境变量 

--------------------------------------------------------

回楼上两位,我仍未解决问题. 


--------------------------------------------------------

你把python23.lib拷贝一份,改名为python23_d.lib就可以了 

编译过去的问题出在这里: 
#ifdef _DEBUG 
#pragma comment(lib,"python24_d.lib")/*这个文件不存在*/ 
#else 
#pragma comment(lib,"python24.lib") 

如果你用vc的预编译,就进入了python24_d.lib 

posted @ 2012-07-29 01:50  dengyigod  阅读(358)  评论(0编辑  收藏  举报