python导入模块报错,python引包报错怎么回事
本文主要介绍如何解决Python引导模块报错的问题。文章重点介绍了题目的相关内容,有一定的参考价值,有需要的朋友可以参考一下。
Python导包模块报错的问题:
导入报告了没有名为“xxx”的模块的问题
如何将指定目录作为项目根目录,使得项目根目录下的所有包/模块都可以直接导入?(在linux下)
Python导入模块时,解释器如何定位模块:
1.当前目录
2.内置模块列表
3.3.sys.path列表的目录
因为python没有模块名为 xxx 的问题,当它不在模块目录中时,大概有两种解决方案:
1.在sys.path中永久添加要导入的模块的父目录;2.每次要导入时,在执行的py文件中执行sys.pathappend方法,将要导入的模块的父目录添加到sys.path中。
问题和解决示例:
在sys.path中永久添加一个目录,这样在包导入过程中python finder就可以直接找到这个目录下的py文件。
Desktop/pytest/下两个各包含一个py文件的文件夹:
测试/测试. py
路径测试/路径测试. py
# test.py
打印(“测试”)
#路径测试. py
从测试导入测试
目标:执行path_test目录下的python3path_test.py,字符串test要打印出来(一般情况下,当./pytest/未配置为源目录,将出现错误No module named " test "或ImportError)。
将指定目录添加到sys.path(永久或临时)作为项目的源目录的方法步骤:
进入pytest/目录在终端输入pwd命令获取到pytest/的绝对路径:
/home/image/Desktop/pytest
查看和复制python3的sitepackage路径:
python3
导入网站
site.getsitepackages()
[/usr/local/lib/python 3.8/dist-packages ,/usr/lib/python3/dist-packages ,/usr/lib/python 3.8/dist-packages ]
根据您实际想要使用的python版本,复制sitepackages所在的路径。这里我复制了第一个:
/usr/local/lib/python 3.8/dist-packages
转到上面复制的目录中的CD/usr/local/lib/python 3.8/dist-packages。
创建并编辑. pth文件(sudo)vim/usr/local/lib/python 3.8/dist-packages/XXX . PTH。
Xxx是您的文件的名称
在xxx.pth文件中加入需要添加的项目根目录的路径:
验证该目录已成功添加到sys.path中
python3
导入系统
sys.path
[ ,/usr/lib/python38.zip ,/usr/lib/python3.8 ,/usr/lib/python3.8/lib-dynload ,/usr/local/lib/python 3.8/dist-packages ,/home/image/Desktop ,/home/image/Desktop/pytest ,/usr/lib/python 3/dist-packages ]
刚刚添加了倒数第二个路径/home/image/Desktop/pytest。
在Desktop/pytest/path_test/目录下执行:python3 path_test.py好像可以导入并打印字符串test,但是却出现了ImportError:.
回溯(最近呼叫):
模块中文件“path_test.py”的第5行
从测试导入测试
ImportError:无法从“test”中导入名称“test”(/usr/lib/python 3.8/test/_ _ init _ _)。py)
经过一番检查,似乎在找到sys.path的路径之前,内置模块匹配了另一个名为test的模块,然后找不到所需的/test/test.py,于是想到了解决办法。
修改名称目录的名称Desktop/pytest/test/,例如Desktop/pytest/example/:
mv测试/示例/
同时,path_test.py中的代码改为from example导入测试。
然后再运行:
python3 path_test.py
试验
发现运行正常,打印字符串测试。
临时将指定目录加入到sys.path让python finder可以在导包时可以直接查找到的方法
对单个py文件的一次性解决方案,无需修改文件夹名称。请注意,应该将路径插入sys.path列表的第一个位置,而不是追加。
此时直接在代码中执行sys.path.insert (0,/home/image/desktop/pytest ),可以对这个test.py文件起作用。
关于Python启动模块错误问题解决的这篇文章到此为止。关于Python启动模块错误的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。