virtualenv 中的配置位置

Location for configuration in a virtualenv

在 python virtualenv 中存储配置的常用 location/directory 在哪里?

对于 Linux 有 /etc 对于用户内容有 XDG_CONFIG_HOME (~/.config) 但对于 virtualenv ...?

我知道我可以将我的配置存储在我想要的任何位置,但也许有一个共同的位置,这使得我的应用程序更容易被 python 专家理解。

所以我认为这是最常见的方法...

1。 postactivate 使用 virtualenvwrapper

我自己一直在 postactivate 文件中这样做。在这种方法中,您可以直接在该文件中定义环境变量(我的偏好)或在您的项目目录中的单独文件中,您在 postactivate 文件中 source。具体来说,这实际上是 virtualenvwrapper 的一部分,而不是 virtualenv 本身。

http://virtualenvwrapper.readthedocs.io/en/latest/scripts.html#postactivate

(如果你想要真正干净,你也可以在 postdeactivate 文件中取消设置你的环境变量。)

或者,您可以直接在 activate 文件中执行此操作。我发现这种方法不太可取,因为那里还有其他事情发生。

https://virtualenv.pypa.io/en/latest/userguide.html#activate-script

我也使用过的两个流行的替代方法是:

2。 .envautoenv

独立于 virtualenv,另一种解决相同问题的方法是 Kenneth Reitz 的 autoenv,它会在您 cd 进入项目目录时自动获取 .env。这个我用的不多了。

https://github.com/kennethreitz/autoenv

3。 .env 与 Python 分离

如果您只需要 Python 代码的环境变量(而不是,例如,在项目中的 shell 脚本中),那么 Python 解耦是一种相关的方法,它在项目的根目录中使用简化的 .env 文件。这些天我发现自己越来越多地使用它。

https://github.com/henriquebastos/python-decouple/


看到 The Hitchhiker's Guide to Python - Virtual Environments 中没有对此进行详细讨论,我感到有些惊讶。也许我们可以根据这个问题生成一个关于它的拉取请求。