2024-09-01
Python
00

目录

解决办法
详细说明

解决办法

一句话,给搜索路径,代码在调用路人甲,就把路人甲的父亲路径加入即可,可以采取的办法1是绝对路径:

python
import os import sys sys.path.append("/home/kevin_xie/yifeinfs/pycharm_k/python_test/")

办法2是相对路径+sys的一些方法:

python
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中,你可以这么写,没有问题,能找到包。

powershell
from reco1.sub.prfunction import pr pr()

但你在终端执行,在/home/kevin_xie/yifeinfs/pycharm_k/python_test/reco2/sub2执行是执行不了的:

powershell
(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执行,也是不行的:

powershell
(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'

推出方法,如果这么写,将想调用的包的父亲路径加入,就能寻找到了。

powershell
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()
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!