装了 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