Python-包和设置文件

Python-包和设置文件,python,Python,我有一个python包,需要从我的项目目录中引入设置,下面是我的项目当前的结构: ~/Project/bin/mypackage - package files ~/Project/myproject/ - project files - start.py - settings.py 我想这与Django的结构类似,您的项目目录中有一个settings.py文件,Python目录中的Django系统包以某种方式引用了该文件 因此,如果我像这样运行sta

我有一个python包,需要从我的项目目录中引入设置,下面是我的项目当前的结构:

~/Project/bin/mypackage
    - package files
    
~/Project/myproject/
    - project files
    - start.py
    - settings.py
我想这与Django的结构类似,您的项目目录中有一个
settings.py
文件,Python目录中的Django系统包以某种方式引用了该文件

因此,如果我像这样运行
start.py

python ~/Project/myproject/start.py

..和
start.py
导入并使用
mypackage
包,我是否可以从包中引用
settings.py
本地文件
start.py
?我是否必须在
start.py
中加载设置文件,并将值存储在全局文件中?有人知道这是怎么回事吗?

包含用于调用python解释器的脚本的目录被添加到
PYTHONPATH
中。可在
sys.path[0]
上找到它。看

这意味着
设置
应该可以通过
导入设置
mypackage.mymodule
获得


不过,我会考虑在St.py中加载设置并构造应用程序,以便将一个设置对象(也许只是一个DICT)传递给它。

< P>我看,您有几个选项:

  • 查找设置并从当前工作目录或根据环境变量导入它们。这是使用django_设置_模块和PYTHONPATH的“django方式”。当它工作时,这是好的和神奇的,当它不工作时,例如在您的情况下,当您从不同的目录运行时,这是不方便的

  • 依赖模块搜索路径,该路径将包括调用包的目录。很好,很简单,但是设置会根据呼叫者的不同而有所不同。例如,mypackage中所需的全部内容是:

    导入设置

  • 将设置作为变量传入