解决Python import .pyd 可能遇到路径的问题


Posted in Python onMarch 04, 2021

Python import .pyd文件时会搜索sys.path列表中的路径

运行

import xxx.pyd

1. 'ImportError: No module named xxx'

可能是xxx.pyd所在路径不在sys.path中。

解决方法:

import之前用sys.path.append()方法加入xxx.pyd所在路径,确定当前路径推荐用os.path.realpath('.')。

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中:

os.environ['path'] += ';D:\\test\\DLLFiles'

补充:Python import / pyd / dll

使用Python import 模块时,

先会在模块的搜索path里依次搜索(前面会覆盖之后出现的同名模块),次序为:

1. 程序的主目录(交互模式下当前的工作目录或 脚本文件所在的目录)

2. 环境变量 PYTHONPATH目录(如果已经进行了设置)

3. 标准链接库目录(标准库模块所在目录 C:\Python27或C:\Python27\Lib\site-packages 目录中)

4. 任何放在标准链接库目录中的.pth文件中记录的目录

(1) 当出现诸如:

解决Python import .pyd 可能遇到路径的问题

no module 错误时, 说明无法找到对应的 .pyd 文件(Python中的动态链接库文件),

其可能的原因是:

a. 该 vtkCommonPython.pyd 文件不在搜索目里。(需拷入到搜索目录下 或 将其目录设置到PYTHONPATH中)

b. 该 module的 名字有问题, 比如输错了;或 应该为Debug版(如应该为 vtkCommonPython_d.pyd, Debug版的都需在 Python_d.exe中执行,且都需加_d后缀)

(2)当出现诸如:

解决Python import .pyd 可能遇到路径的问题

DLL load failed 错误时, 说明 可以找到该 模块对应的.pyd文件,但无法找到该 .pyd文件 对应的 dll文件时。

解决办法:

将对应的同名.dll文件路径放到环境变量PATH中。(或将该.dll文件放到PATH能找到的目录下)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。如有错误或未考虑完全的地方,望不吝赐教。

Python 相关文章推荐
python多进程操作实例
Nov 21 Python
Django中ORM表的创建和增删改查方法示例
Nov 15 Python
对python以16进制打印字节数组的方法详解
Jan 24 Python
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
Apr 01 Python
Python实用工具FuckIt.py介绍
Jul 02 Python
Python如何计算语句执行时间
Nov 22 Python
python读取多层嵌套文件夹中的文件实例
Feb 27 Python
Python3标准库之dbm UNIX键-值数据库问题
Mar 24 Python
30行Python代码实现高分辨率图像导航的方法
May 22 Python
python中yield的用法详解
Jan 13 Python
Python NumPy灰度图像的压缩原理讲解
Aug 04 Python
python单向链表实例详解
May 25 Python
关于PySnooper 永远不要使用print进行调试的问题
Mar 04 #Python
pip/anaconda修改镜像源,加快python模块安装速度的操作
Mar 04 #Python
Pytorch实现WGAN用于动漫头像生成
Mar 04 #Python
基于PyInstaller各参数的含义说明
Mar 04 #Python
解决Pyinstaller打包软件失败的一个坑
Mar 04 #Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
Mar 04 #Python
解决PDF 转图片时丢文字的一种可能方式
Mar 04 #Python
You might like
php实现压缩多个CSS与JS文件的方法
2014/11/11 PHP
php生成zip文件类实例
2015/04/07 PHP
关于PHP通用返回值设置方法
2017/03/31 PHP
php注册审核重点解析(数据访问)
2017/05/23 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
动态的改变IFrame的高度实现IFrame自动伸展适应高度
2012/12/28 Javascript
js事件监听机制(事件捕获)总结
2014/08/08 Javascript
JS中三目运算符和if else的区别分析与示例
2014/11/21 Javascript
jquery实现翻动fadeIn显示的方法
2015/03/05 Javascript
JavaScript点击按钮后弹出透明浮动层的方法
2015/05/11 Javascript
javascript实现相同事件名称,不同命名空间的调用方法
2015/06/26 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
2016/12/04 Javascript
js 用于检测类数组对象的函数方法
2017/05/02 Javascript
Javascript中 toFixed四舍六入方法
2017/08/21 Javascript
JS实现点击下拉菜单把选择的内容同步到input输入框内的实例
2018/01/23 Javascript
JS实现的判断方法、变量是否存在功能示例
2020/03/28 Javascript
微信小程序实现笑脸评分功能
2018/11/03 Javascript
如何使用jQuery操作Cookies方法解析
2020/09/08 jQuery
利用JavaScript为句子加标题的3种方法示例
2021/01/05 Javascript
python类继承用法实例分析
2014/10/10 Python
python实现的希尔排序算法实例
2015/07/01 Python
利用Anaconda完美解决Python 2与python 3的共存问题
2017/05/25 Python
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
python 脚本生成随机 字母 + 数字密码功能
2018/05/26 Python
python time.sleep()是睡眠线程还是进程
2019/07/09 Python
python 基于dlib库的人脸检测的实现
2019/11/08 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
2019/11/11 Python
python中wx模块的具体使用方法
2020/05/15 Python
python3代码输出嵌套式对象实例详解
2020/12/03 Python
什么是lambda函数
2013/09/17 面试题
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
2016/01/12 面试题
Servlet的生命周期
2013/08/25 面试题
车祸赔偿收入证明
2014/01/09 职场文书
中学生打架检讨书
2014/02/10 职场文书
产品销售计划书
2014/05/04 职场文书
详解MySQL的Seconds_Behind_Master
2021/05/18 MySQL