我刚注意到我不能再使用Python 2.6 dll了。 Python 2.5工作正常。
import ctypes
py1 = ctypes.cdll.python25
py2 = ctypes.cdll.python26
# ctypes.cdll.LoadLibrary("libpython2.6.so") in linux
py1.Py_Initialize()
py2.Py_Initialize()
# segmentation fault in Linux
py1.PyRun_SimpleString("print 'hello world'")
# this works because it is using python 2.5
py2.PyRun_SimpleString("print 'hello world2'")
# WindowsError: exception: access violation reading 0x00000004
我做错了还是Python 2.6坏了?
更新
答案 0 :(得分:2)
你在做什么是错的。您显然正在运行Python 2.6,然后尝试在同一进程(和线程)中初始化共享库,这将崩溃(如果您很幸运...如果您不是它会导致您非常难看的麻烦后来)。你永远不应该尝试将Python加载到自身并调用Py_Initialize。
答案 1 :(得分:1)
嗯,我怀疑你可以做的是在同一个进程中加载两个 2.5和2.6 ... ctypes.cdll.python26.Py_Initialize()单独工作吗?
编辑:等等,你是否试图从Python内部加载Python DLL?相机连?