【发布时间】:2020-07-23 01:25:03
【问题描述】:
本质上,主要问题是在 Ubuntu 上没有看到用于导入的包,而在 Windows 上用于 Git Bash。
这是相关的目录结构,其中库文件夹是有问题的包/模块。
project-dir/
services/
task.py
library/
__init__.py
module.py
在task.py 文件中,我有采用以下语法的导入:
from library.module import function
在project-dir 文件夹中,我运行以下命令:python services/task.py。
在 Windows 上的 Git Bash 上,这非常有效。但是,在 Ubuntu 上,我得到了一个 ModuleNotFoundError 抛出。以下是抽象的上述错误:
Traceback (most recent call last):
File "services/task.py", line 3, in <module>
from library.module function
ModuleNotFoundError: No module named 'library'
注意:我看到了this question,这看起来与我的问题非常相似,但是向PYTHONPATH 添加内容并没有解决问题。这是我的PYTHONPATH 的输出:
/home/username/.local/lib/python3.6/site-packages:/usr/lib/python3.6:/usr/lib/python3.6/lib-dynload:/usr/local/lib/python3.6/dist-packages:/usr/lib/python3/dist-packages
【问题讨论】:
-
您尝试在 Ubuntu 上向
PYTHONPATH添加什么? -
@forty_two 文章末尾提到的所有项目都是我添加的。
-
@forty_two 澄清一下,
echo "$PYTHONPATH"的输出中用冒号分隔的每个项目都是我添加的。 -
知道了,感谢您的澄清。您是否尝试将项目目录添加到
PYTHONPATH;类似export PYTHONPATH=$PYTHONPATH:/path/to/project-dir/? -
@forty_two 这确实会导致它工作,但考虑到 Git Bash 不需要它,我不明白为什么需要这样做。
标签: python module package python-import importerror