解决Python import .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所在路径,确定当前路径推荐用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) 当出现诸如:

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

其可能的原因是:

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

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

(2)当出现诸如:

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

解决办法:

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

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

(0)

相关推荐

  • python 指定源路径来解决import问题的操作

    用python做大型工程时,经常会出现import问题.比如,当你import另一个py文件时,这个py不存在于你的运行路径下,便会报错. 大概有两种方法: 如果在terminal里,咱们可以通过sys.path.append来添加运行路径:如果在pycharm环境里,咱们可以右键Mark Directory as Sources Root. 举个栗子:vim head.py def add(a, b): return a + b vim run.py import head a = 3 b =

  • 详解Python中的路径问题

    1. 绝对路径引入 Python 在搜索模块时,依次搜索sys.path里的位置,直到找到模块为止.下面命令可以查看当前的搜索路径: import sys print(sys.path) sys.path的初始值来源于两个(其实还有一些更复杂但不常用的).一个是系统的PYTHONPATH变量,因此可通过设置该变量,来设置 Python 默认的搜索位置.比如: export PYTHONPATH=/opt/python:$PYTHONPATH echo $PYTHONPATH 将该命令放在系统初始

  • 解决python中import文件夹下面py文件报错问题

    如下所示: 在需要导入的那个文件夹里面新建一个 __init__.py文件,哪怕这个文件是空的文件也可以. 补充知识:python中import其他目录下的文件出现问题的解决方法 在使用python进行编程的时候,import其他文件路径下的.py文件时报错 Traceback (most recent call last): File "download_and_convert_data.py", line 44, in <module> from .datasets i

  • 解决Python import .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所在路径,确定当前路径推荐用os.path.realpath('.'). 2. 'ImportError: DLL load failed: 找不到指定的程序' 可能是x

  • 浅谈python import引入不同路径下的模块

    python 包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径. 下面将具体介绍几种常用情况: (1)主程序与模块程序在同一目录下: 如下面程序结构: `-- src     |-- mod1.py     `-- test1.py 若在程序test1.py中导入模块mod1, 则直接使用 import  mod1或from mod1 import *; (2)主程序所在目录是模块所在目录的父(或祖辈)目录 如下面程序结构: `-- src     |--

  • 解决Python import docx出错DLL load failed的问题

    在用pip安装完docx之后,import docx报错DLL load failed,经过排查发现是因为lxml的问题.用pip安装docx的时候,安装的是3.8.0版本的lxml,将lxml卸载,安装3.7.3版本即可解决. 若安装完3.7.3版本的lxml以及docx之后,import docx 报如下错误: No module named 'exceptions' 接着pip install python-docx 即可解决问题 总结:若出现DLL load failed,将lxml版本

  • 解决python有时候import不了当前的包问题

    问题描述: ImportError: No module named 'XXXX' 解决方式一: 将XXXX包放在python的site-package文件夹下 解决方式二: 可能是XXXX包没有新建init.py 解决方式三: init.py需要声明包含XXXX包的函数 解决方式四: sys.path.append(Ur 'XXXX's path) 但是,有些时候python解释器可能脑抽....明明上述操作都有,但是就是找不到. ImportError: No module named 'X

  • 解决python cv2.imread 读取中文路径的图片返回为None的问题

    使用cv2读取图片时,输出图片形状大小时出现报错" 'NoneType' object has no attribute shape",后来排查发现读取图片的返回值image为None, 这就说明图片根本就没有被读取. 下面图片是问题问题解决后,为了更好的展示,写的代码展示,这是正常的因果关系,找错误排查时是从下往上推. 使用PIL读取图像,能够成功读取图片,借此了解图片的大小和格式,代码如下图所示: cv.imread函数能够成功读取非中文路径的图片,所以就想到是不是中文路径的问题,

  • Python import自己的模块报错问题及解决

    目录 一.同一文件夹下 但是这个时候在PyCharm中显示的是报错 在cmd命令中执行也是成功的 二.处于不同文件夹下面 三.找到本地库的路径,然后将文件拷进去即可 四.手动给python添加搜索路径 在这里说一句Python的包搜索路径 在实际使用python时,我们会将一些公共的东西写到一些基础模块中,供其他模块去调用,这时会去import自定义的一些基础模块,然后来导入. 自己写好了脚本,然后导入,导入的情况分为以下情况: 1. 运行的模块与需要调用自定义基础模块在同一文件夹下 2. 自定

  • 解决python大批量读写.doc文件的问题

    前言: java语言读写.doc的出现乱码问题: 大家都知道当我们利用java语言读写.doc文件时,无论是利用流的方式将.doc文件的内容输出到控制台(console),还是将其写到其他文件中,无论你采取何种编码格式(utf-8,gbk等)输出,你看到的内容99%都是乱码. java语言读写.doc的出现乱码问题原因分析: .doc文件是微软开发的用于办公的编辑文字的软件之一,如果说一篇word文档的字体格式采用的是utf-8,那么你采用utf-8格式读写该文档,应该能够正确输出汉字,但是一旦

  • 解决python打不开文件(文件不存在)的问题

    今天使用 import pandas users = pandas.read_csv("H:\python\data analysis\countries.csv") 问题 引入数据集,奇怪的是 怎么也打不开,显示不存在这个文件: 但是,我将文件改个名字,就打开了,难道csv的文件命名必须有一定合法性? 尝试 由此,我试了几个别的名字,直到我尝试了u开头的 原因 终于明白了,因为写路径的时候用到的\,python默认是\u.\r .\t 等等转义字符,所以我把路径的\换成\\ 不仅是文

  • 解决python文件双击运行秒退的问题

    今天帮同事写了一个处理Excel表格的python脚本,在我的电脑上双击正常运行,奈何在同事的电脑上总是秒退,研究了半天终于解决,写出来跟大家分享一下. py文件秒退原因分析: 首先确保电脑里装了python解释器,如果没装是不能运行.py结尾的文件的.附上安装方法.有python解释器以后,需要设置.py文件的打开方式为python.exe.(路径一般是C:\Users\你的用户名\AppData\Local\Programs\Python\Python.exe) 接着考虑代码自身业务,如果你

随机推荐