自定义模块引入失败ModuleNotFoundError: No module named ‘****‘;

引起失败的原因

经过个人实践发现导致自定义模块失败的原因有以下几种

1.当前路径不是默认情况下python导入文件或者模块的路径

2.自制模块本身存在问题,例如由于某些原因导致py编译为pyd文件存在错误,python环境无法识别

3.自定义模块的python版本和当前使用的python存在差异

解决方案:

1.路径非默认引用路径

获取当前文件所在路径,将当前路径添加到python导入文件的路径

import sys, os
base_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(base_path)
#----------------  sys拼接 一定要在自定义包引入之前定义   ----------------------------------
import package.test1 as test1       #注意import的顺序。
print(test1.a)

2.编译pyd文件方法存在问题

以下是个人编译pyd文件,亲测有效的方法

2.1将需要编译的文件后缀.py改为.pyx

原始文件内容

def ZWHp():
    print("Z_W_H_")
def ZWHp1():
    print("调用pyd")
def ZWHp2():
    print("Z_W_H_")

修改后缀

2.2下载easycython模块

pip install easycython

2.3使用与之后要用的python版本的conda环境,输入一下命令

进入指定文件夹中,否则生产的文件就会在其他文件

输入一下指令

easycython ***.pyx

 显示一下红色的内容,就说明编译成功

2.4将编译好的pyd文件的名称进行修改

修改如下

删除原始文件,防止引入错误

2.5引入pyd模块,进行编译,但是模块会有红色波浪线,我们右键忽略即可

原始使用方法:(还需进一步验证)

使用cython模块进行将py文件编译为pyd文件

3.编译python其他文件使用的版本不一致

比如之后要使用的python版本是3.9,那就不能用3.10版本进行编译文件

参考文献

Python入门系列15 - 史上最详细的包和模块import讲解篇-轻识

2021-6-30:如何将python文件编译为pyd文件_将py变成pyd-CSDN博客

猜你喜欢

转载自blog.csdn.net/qq_39397927/article/details/135090286
今日推荐