解决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实用日期时间处理方法汇总
May 09 Python
在Python中用split()方法分割字符串的使用介绍
May 20 Python
横向对比分析Python解析XML的四种方式
Mar 30 Python
python中的break、continue、exit()、pass全面解析
Aug 05 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
Dec 18 Python
Python+Django搭建自己的blog网站
Mar 13 Python
Python 变量类型详解
Oct 10 Python
Python爬取成语接龙类网站
Oct 19 Python
django-filter和普通查询的例子
Aug 12 Python
django 简单实现登录验证给你
Nov 06 Python
python zip()函数的使用示例
Sep 23 Python
使用Django实现商城验证码模块的方法
Jun 01 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
第十四节 命名空间 [14]
2006/10/09 PHP
Yii中CArrayDataProvider和CActiveDataProvider区别实例分析
2016/03/02 PHP
Zend Framework教程之Zend_Layout布局助手详解
2016/03/04 PHP
php连接mysql数据库
2017/03/21 PHP
PHP简单获取随机数的常用方法小结
2017/06/07 PHP
php服务器的系统详解
2019/10/12 PHP
Laravel 连接(Join)示例
2019/10/16 PHP
JavaScript对象模型-执行模型
2008/04/28 Javascript
jquery调用wcf并展示出数据的方法
2011/07/07 Javascript
JS中判断JSON数据是否存在某字段的方法
2014/03/07 Javascript
你点的 ES6一些小技巧,请查收
2018/04/25 Javascript
vue实现的组件兄弟间通信功能示例
2018/12/04 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
解决Vue调用springboot接口403跨域问题
2019/09/02 Javascript
layui表单验证select下拉框实现验证的方法
2019/09/05 Javascript
vue-calendar-component 封装多日期选择组件的实例代码
2020/12/04 Vue.js
Python单例模式的两种实现方法
2017/08/14 Python
浅谈Python中的作用域规则和闭包
2018/03/20 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
python 自定义对象的打印方法
2019/01/12 Python
Python代码实现http/https代理服务器的脚本
2019/08/12 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
2020/06/03 Python
Python word文本自动化操作实现方法解析
2020/11/05 Python
html+css3实现的登录界面
2020/12/09 HTML / CSS
基于第一个PhoneGap(cordova)的应用详解
2013/05/03 HTML / CSS
Old Navy加拿大官网:美式休闲服饰品牌
2017/09/26 全球购物
世界上最大的铁人三项商店:Tri UK
2020/11/04 全球购物
高中毕业生生活的自我评价
2013/12/08 职场文书
大一学生职业生涯规划
2014/03/11 职场文书
数学高效课堂实施方案
2014/03/29 职场文书
债务授权委托书范本
2014/10/17 职场文书
埃及王子观后感
2015/06/16 职场文书
幼师必备:幼儿园期末教师评语50条
2019/11/01 职场文书
详解Java实现设计模式之责任链模式
2021/06/23 Java/Android
Vue3中的Refs和Ref详情
2021/11/11 Vue.js
详解Vue的列表渲染
2021/11/20 Vue.js