在python virtualenv中存储配置的公共位置/目录在哪里?
对于Linux,/etc
用户的内容有XDG_CONFIG_HOME
(〜/ .config)但是对于virtualenv ...?
我知道我可以将配置存储在我想要的任何位置,但也许有一个共同的位置,这使我的应用程序更容易被python专家理解。
答案 0 :(得分:4)
所以我认为这是最常见的方法......
postactivate
我自己总是在postactivate
文件中完成此操作。在这种方法中,您可以直接在该文件中定义环境变量(我的首选项),也可以在项目目录中的单独文件中定义source
在postactivate文件中。具体而言,这实际上是virtualenvwrapper的一部分,而不是virtualenv本身。
http://virtualenvwrapper.readthedocs.io/en/latest/scripts.html#postactivate
(如果您想要非常干净,也可以在postdeactivate
文件中取消设置环境变量。)
或者,您可以直接在activate
文件中执行此操作。我发现这种方法不太理想,因为那里还有其他事情发生。
https://virtualenv.pypa.io/en/latest/userguide.html#activate-script
我也使用过两种流行的替代品:
.env
autoenv
与.env
独立于virtualenv,解决同一问题的另一种方法是Kenneth Reitz的autoenv,每当你进入项目目录时它自动获取.env
。我不再使用这个了。
https://github.com/kennethreitz/autoenv
如果您只需要Python代码的环境变量(而不是,例如,在项目内的shell脚本中),那么Python Decouple是一种相关的方法,它在您的根目录中使用简化的.env
文件项目。这些天我发现自己越来越多地使用它了。
https://github.com/henriquebastos/python-decouple/
我很惊讶地看到The Hitchhiker's Guide to Python - Virtual Environments中没有详细讨论过这个问题。也许我们可以从这个问题中生成关于它的拉取请求。