在virtualenv中处理配置文件安装的Pythonic方法?

时间:2016-08-17 22:19:09

标签: python pip virtualenv setuptools packaging

假设我正在从setup.py安装python应用程序,并在virtualenv中执行此操作。此外,假设我需要提供应用程序敏感配置,例如API密钥/ URI。

我的virtualenv可能在如下的道路上:

/opt/appname/venv

我相信我希望能够在成功执行之前为应用程序的用户安装默认配置文件。

可能会将默认示例安装到:

/etc/appname/config.sample

问题是,如果我在virtualenv中,setup.py / setuptools实际上不会处理安装到全局路径(据我所知)。

处理这种相当常见的场景最好的pythonic方法是什么?

2 个答案:

答案 0 :(得分:1)

假设配置文件改变了虚拟环境变量,这就是在启动虚拟环境之前必须修改它的原因,那么您可以修改activate中的./venv/bin bash脚本来完成此操作。因此,如果您想从配置文件添加全局路径,那么activate中的最后一行可能是:

MY_GLOBAL_PATH=<program that looks into config file and returns path>

然后可以像往常一样激活虚拟环境:

source ./venv/bin/activate

答案 1 :(得分:-1)

您是否尝试过使用Python的site-specific configuration选项?在我看来,.pth文件和sitecustomize.py文件可能会有所帮助 另见:Accepted answer on "Using .pth files"

如果没有一个更具体的“全球路径”的例子,那就更难以详细说明可能做的事情 - 尽管这在某种程度上是一般风格的问题。