解决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中用keys()方法返回字典键的教程
May 21 Python
python基于右递归解决八皇后问题的方法
May 25 Python
Python判断两个对象相等的原理
Dec 12 Python
Sanic框架异常处理与中间件操作实例分析
Jul 16 Python
Python利用heapq实现一个优先级队列的方法
Feb 03 Python
pytorch:torch.mm()和torch.matmul()的使用
Dec 27 Python
Numpy与Pytorch 矩阵操作方式
Dec 27 Python
python3.8下载及安装步骤详解
Jan 15 Python
Python如何省略括号方法详解
Mar 21 Python
Django之富文本(获取内容,设置内容方式)
May 21 Python
Python爬虫基础初探selenium
May 31 Python
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
Apr 14 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
一个odbc连mssql分页的类
2006/10/09 PHP
搭建基于Docker的PHP开发环境的详细教程
2015/07/01 PHP
值得分享的php+ajax实时聊天室
2016/07/20 PHP
微信自定义菜单的创建/查询/取消php示例代码
2016/08/05 PHP
php封装的验证码工具类完整实例
2016/10/19 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
jQuery源码分析-02正则表达式 RegExp 常用正则表达式
2011/11/14 Javascript
js数组操作学习总结
2013/11/04 Javascript
jquery拖动层效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
Vue.js每天必学之Class与样式绑定
2016/09/05 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
2017/03/06 Javascript
JavaScript字符串检索字符的方法
2017/06/23 Javascript
node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
2018/01/12 Javascript
vue.js响应式原理解析与实现
2020/06/22 Javascript
在 Angular-cli 中使用 simple-mock 实现前端开发 API Mock 接口数据模拟功能的方法
2018/11/28 Javascript
el-select 下拉框多选实现全选的实现
2019/08/02 Javascript
vue实现页面滚动到底部刷新
2019/08/16 Javascript
解决Vue-Router升级导致的Uncaught (in promise)问题
2020/08/07 Javascript
JavaScript实现网页下拉菜单效果
2020/11/20 Javascript
python中的内置函数getattr()介绍及示例
2014/07/20 Python
python生成日历实例解析
2014/08/21 Python
python自动化测试之setUp与tearDown实例
2014/09/28 Python
Python中类的定义、继承及使用对象实例详解
2015/04/30 Python
python九九乘法表的实例
2017/09/26 Python
Python 3.x基于Xml数据的Http请求方法
2018/12/28 Python
python中时间、日期、时间戳的转换的实现方法
2019/07/06 Python
购买大码女装:Lane Bryant
2016/09/07 全球购物
美国著名珠宝品牌之一:Jared The Galleria Of Jewelry
2016/10/01 全球购物
德国高品质男装及配饰商城:Cultizm(Raw Denim原色牛仔裤)
2018/04/16 全球购物
社团活动总结报告
2014/06/27 职场文书
单位婚育证明范本
2014/11/21 职场文书
婚宴新郎致辞
2015/07/28 职场文书
2015年小学体育教师工作总结
2015/10/23 职场文书
学习计划是什么
2019/04/30 职场文书
VUE使用draggable实现组件拖拽
2022/04/06 Vue.js