我有一个名为library
的项目,其中有3个文件夹 - user
,book
和main
。 user_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
答案 0 :(得分:1)
与PYTHONPATH
混淆真的是前进的错误方法。而是将您的user
和book
文件夹转换为正确的模块/子模块。为此,您需要将__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 放在用户文件夹中。