无法使用 PYTHONPATH 加载模块
Cannot load module with PYTHONPATH
我有一个名为 library
的项目,其中有 3 个文件夹 - user
、book
和 main
。 user
中有一个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
确实是错误的做法。相反,将您的 user
和 book
文件夹转换为正确的 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。
我有一个名为 library
的项目,其中有 3 个文件夹 - user
、book
和 main
。 user
中有一个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
确实是错误的做法。相反,将您的 user
和 book
文件夹转换为正确的 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。