我想在c ++代码中使用python,但它有一个错误,它是最简单的“hello word”程序。
导入PIL.Image是好的,但对于Tkinter,它将输出“ImportError:No module named _tkinter”。 我打印了sys.path,但没有任何线索。
以下快照向您显示详细信息:http://i.minus.com/iWoCUlidmq5M3.jpg
ENV: Visual Studio 2010。 Python 2.7.2,32bit。
我是新用户,因此无法上传图片。 :(
这个问题花了我好几天,希望有人能给我一些建议,非常感谢。
这是另一个信息:
源代码:
int _tmain(int argc, _TCHAR* argv[])
{
Py_Initialize();
if(!Py_IsInitialized())
cout<< "init failed"<<endl;
PyRun_SimpleString ("import sys, struct, zlib ");
PyRun_SimpleString ("sys.path.append('C:\\Python27\\DLLs')");
PyRun_SimpleString ("sys.path.append('C:\\Python27\\libs')");
PyRun_SimpleString ("sys.path.append('C:\\Python27\\Lib\\lib-tk')");
PyRun_SimpleString ("sys.path.append('C:\\Python27\\Lib\\idlelib')");
PyRun_SimpleString ("sys.path.append('C:\\Python27\\lib\\plat-win')");
// PyRun_SimpleString ("print sys.path ");
PyRun_SimpleString ("import PIL.Image, StringIO");
PyRun_SimpleString ("import Tkinter");
}
错误信息:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Python27\Lib\lib-tk\Tkinter.py", line 38, in <module>
import FixTk
File "C:\Python27\Lib\lib-tk\FixTk.py", line 65, in <module>
import _tkinter
ImportError: No module named _tkinter
答案 0 :(得分:0)
您的exe可能无法访问C:\ Python27 \ DLLs中的DLL(或相同的PYD)。您应该将此文件夹添加到Windows路径。见https://stackoverflow.com/a/428217/117092
答案 1 :(得分:0)
我已经解决了这个问题,因为我使用了调试python_d.dll,它会找到调试版本的pyd文件,所以它失败了。
然后我将python.dll更改为python_d.dll,并在pyconfig中删除调试proprocesser,它有效。