我有这种路径架构:
>main_path/
__init__.py
config/
__init__.py
common.py
app_1/
__init__.py
config.py
index.py
>
我希望能够在config.py
中执行此操作:
>from main_path.config import common
>
虽然它不起作用。 Python告诉我:
> $> pwd
..../main_path/app_1
$> python index.py
[...]
ImportError: No module named main_path.config
>
据我了解,如果我从main_path加载所有内容,这将是可能的,但目的是让多个应用程序具有公共配置文件。
我尝试将父目录添加到app_1 / __path__
中的__init__
。py但它没有改变任何内容。
我的下一步行动是建立一个符号链接,虽然我不太喜欢这个“解决方案”,所以如果你有任何想法可以帮助我,我将不胜感激!
提前致谢!
答案 0 :(得分:1)
根据Modules documentation,模块必须在您要导入的PYTHONPATH环境变量中。您可以在程序中使用以下内容对其进行修改:
import sys
sys.path.append('PATH_TO/config')
import common
有关详细信息,您可能希望在Modifying Python's Search Path中看到Installing Python Modules。
答案 1 :(得分:1)
如果要修改python的搜索路径而不必每次都设置PYTHONPATH,可以将路径配置文件(.pth文件)添加到python路径上已有的目录中。
本文档详细介绍了它:http://docs.python.org/install/#inst-search-path
最方便的方法是添加一个 路径配置文件到目录 那已经在Python的路径上, 通常到... / site-packages / 目录。路径配置文件 扩展名为.pth,每个 line必须包含单个路径 将附加到sys.path。
答案 2 :(得分:0)
您可以调整PYTHONPATH环境变量或编辑sys.path。