解决Pythonimport.pyd可能遇到路径的问题
Python import .pyd⽂件时会搜索sys.path列表中的路径
运⾏
import xxx.pyd
1. 'ImportError: No module named xxx'
可能是xxx.pyd所在路径不在sys.path中。
解决⽅法:
import之前⽤sys.path.append()⽅法加⼊xxx.pyd所在路径,确定当前路径推荐⽤alpath('.')。
2. ‘ImportError: DLL load failed: 不到指定的程序'
可能是xxx.pyd调⽤了其他的DLL⽂件,且其调⽤的DLL⽂件⽆法被搜索到。
解决⽅法:
⽤dependency walker查看xxx.pyd依赖的DLL,然后有两种⽅案
(1)将所有DLL放⼊xxx.pyd所在⽬录
(2)单独建⽴存放DLL⽂件的⽬录,⽐如D:\test\DLLFiles。
⽤os.environ['path']⽅法加⼊到环境变量PATH中:
补充:Python import / pyd / dll
使⽤Python import 模块时,
先会在模块的搜索path⾥依次搜索(前⾯会覆盖之后出现的同名模块),次序为:
1. 程序的主⽬录(交互模式下当前的⼯作⽬录或脚本⽂件所在的⽬录)
2. 环境变量 PYTHONPATH⽬录(如果已经进⾏了设置)
3. 标准链接库⽬录(标准库模块所在⽬录 C:\Python27或C:\Python27\Lib\site-packages ⽬录中)
4. 任何放在标准链接库⽬录中的.pth⽂件中记录的⽬录
(1)当出现诸如:
no module 错误时,说明⽆法到对应的 .pyd ⽂件(Python中的动态链接库⽂件),
其可能的原因是:
a. 该 vtkCommonPython.pyd ⽂件不在搜索⽬⾥。(需拷⼊到搜索⽬录下或将其⽬录设置到PYTHONPATH中)
b. 该 module的名字有问题,⽐如输错了;或应该为Debug版(如应该为 vtkCommonPython_d.pyd, Debug版的都需在中执⾏,且都需加_d后缀)
(2)当出现诸如:
DLL load failed 错误时,说明可以到该模块对应的.pyd⽂件,但⽆法到该 .pyd⽂件对应的 dll⽂件时。
解决办法:
将对应的同名.dll⽂件路径放到环境变量PATH中。(或将该.dll⽂件放到PATH能到的⽬录下)
python进程间通信
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。如有错误或未考虑完全的地⽅,望不吝赐教。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。