python导入模块报错,python引包报错怎么回事

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: