无法使用PYTHONPATH加载模块

时间:2017-05-15 03:01:05

标签: python pythonpath

我有一个名为library的项目,其中有3个文件夹 - userbookmainuser_utility.py中有一个user。所以我们说项目文件夹是:

/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我想将import语句编写为:

from user.user_utility import UserUtility

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

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

但它不起作用,它扔了

No module named user.user_utility

2 个答案:

答案 0 :(得分:1)

PYTHONPATH混淆真的是前进的错误方法。而是将您的userbook文件夹转换为正确的模块/子模块。为此,您需要将__init__.py - 文件添加到(两个)文件中,例如:

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

答案 1 :(得分:0)

如果直接从命令行调用 main.py ,则可以在行的开头设置环境变量:

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

否则,您应该能够使用以下命令设置该模块查找路径:

export PYTHONPATH=/User/me/Projects/Library

要验证,您可以使用以下命令查看环境变量:

env

此外,请务必将 __ init __。py 放在用户文件夹中。