python 导包找不到路径终极解决办法 ModuleNotFoundError: No module named ‘xxx’
解决办法一句话,给搜索路径,代码在调用路人甲,就把路人甲的父亲路径加入即可,可以采取的办法1是绝对路径:import osimport syssys.path.append("/home/kevin_xie/yifeinfs/pycharm_k/python_test/")办法2是相对路径+sys的一些方法:import osimport sys__dir__ = os.path.dirname(
·
解决办法
一句话,给搜索路径,代码在调用路人甲,就把路人甲的父亲路径加入即可,可以采取的办法1是绝对路径:
import os
import sys
sys.path.append("/home/kevin_xie/yifeinfs/pycharm_k/python_test/")
办法2是相对路径+sys的一些方法:
import os
import sys
__dir__ = os.path.dirname(os.path.abspath(__file__))
sys.path.append(__dir__)
sys.path.append(os.path.abspath(os.path.join(__dir__, '../..'))) # to get "/home/kevin_xie/yifeinfs/pycharm_k/python_test/"
详细说明
python提示找不到包怎么办?
比如我有如下的工程,里面有reco1包和reco2包,每个包里面还有sub包。在prfunction.py中有一个pr函数,我想在test1.py中去运行这个函数。
如果在pythcharm中,你可以这么写,没有问题,能找到包。
from reco1.sub.prfunction import pr
pr()
但你在终端执行,在/home/kevin_xie/yifeinfs/pycharm_k/python_test/reco2/sub2执行是执行不了的:
(py37) [kevin_xie@localhost sub2]$ pwd
/home/kevin_xie/yifeinfs/pycharm_k/python_test/reco2/sub2
(py37) [kevin_xie@localhost sub2]$ python test1.py
Traceback (most recent call last):
File "test1.py", line 2, in <module>
from reco1.sub.prfunction import pr
ModuleNotFoundError: No module named 'reco1'
或者你可以去/home/kevin_xie/yifeinfs/pycharm_k/python_test执行,也是不行的:
(py37) [kevin_xie@localhost python_test]$ pwd
/home/kevin_xie/yifeinfs/pycharm_k/python_test
(py37) [kevin_xie@localhost python_test]$ python reco2/sub2/test1.py
Traceback (most recent call last):
File "reco2/sub2/test1.py", line 2, in <module>
from reco1.sub.prfunction import pr
ModuleNotFoundError: No module named 'reco1'
推出方法,如果这么写,将想调用的包的父亲路径加入,就能寻找到了。
import os
import sys
__dir__ = os.path.dirname(os.path.abspath(__file__))
sys.path.append(__dir__)
sys.path.append(os.path.abspath(os.path.join(__dir__, '../..'))) # to get "/home/kevin_xie/yifeinfs/pycharm_k/python_test/"
from reco1.sub.prfunction import pr
pr()
更多推荐
已为社区贡献3条内容
所有评论(0)