无法使用 PYTHONPATH 加载模块

Cannot load module with PYTHONPATH

我有一个名为 library 的项目,其中有 3 个文件夹 - userbookmainuser中有一个user_utility.py。假设项目文件夹是:

/User/me/Projects/library/user/user_utility.py
/User/me/Projects/library/book/book_utility.py
/User/me/Projects/library/main/main.py

现在,在 /User/me/Projects/library/main/main.py 中,我想将导入语句写为:

from user.user_utility import UserUtility

允许我这样做的 $PYTHONPATH 变量是什么?我试过了

EXPORT PYTHONPATH="/User/me/Projects/library

但它不起作用,它抛出了

No module named user.user_utility

如果直接在命令行调用main.py,可以在行首设置环境变量:

 PYTHONPATH=/User/me/Projects/Library python main.py

否则,您应该能够设置该模块查找路径:

export PYTHONPATH=/User/me/Projects/Library

为了验证,您可以通过以下方式查看您的环境变量:

env

此外,确保将 __init__.py 放入用户文件夹。

搞乱 PYTHONPATH 确实是错误的做法。相反,将您的 userbook 文件夹转换为正确的 modules/submodules。为此,您需要向它们(两者)添加 __init__.py -files,例如:

from user_utility import some_routine

在您的示例中,这将是 /User/me/Projects/library/user/__init__.py。现在您可以从您的 main.py 文件中导入此例程,如下所示:

from user import some_routine

如需完整参考,请查看 the python documentation, modules tutorial