【发布时间】:2011-04-08 00:15:30
【问题描述】:
我的问题的症结在于:
我正在使用 MS Visual Studio 10.0 在 C 中的 Windows XP 上开发代码,我需要嵌入 Python 来执行一些绘图、文件管理和其他一些事情。我在 sys.path 查找我的 Pure-Python 模块时遇到了问题,但我通过修改 PYTHONPATH 解决了这个问题。
现在,我的问题是让 python 找到由某些模块引入的动态库。特别是,我的问题是将文件夹压缩成同名的bzip2 achive。
在普通的 python 命令提示符下,这可以正常工作:
import tarfile
tar=tarfile.open('Code.tar.bz2','w:bz2')
tar.add('Code',arcname='Code')
tar.close()
但是当我从我的 c 代码中调用这段代码时,它给了我这个错误:
Traceback (most recent call last):
File "<string>", line 4, in <module>
File "D:\My_Documents\Code\ScrollModel\trunk\PythonCode.py", line 20, in Colle
ctFiles
tar=tarfile.open(os.path.join(runPath,'CODE.tar.bz2'),'w:bz2')
File "c:\Python26\lib\tarfile.py", line 1671, in open
return func(name, filemode, fileobj, **kwargs)
File "c:\Python26\lib\tarfile.py", line 1737, in bz2open
raise CompressionError("bz2 module is not available")
tarfile.CompressionError: bz2 module is not available
我怀疑这个问题类似于Embedded Python 第 5.6 节中描述的问题,但有点难以判断。如果我这样做,它的价值是什么
Py_Initialize();
PyRun_SimpleString("import ssl\n");
Py_Finalize();
它也不起作用,我得到一个 ImportError。
有人遇到过这样的问题吗?我错过了什么重要的东西吗?
【问题讨论】: