gpt4 book ai didi

python - 如何在virtualenv中设置环境变量

转载 作者:太空狗 更新时间:2023-10-29 18:24:53 32 4
gpt4 key购买 nike

如果我有像这样激活 virtualenv 的 python 脚本:

#!/path/to/venv/bin/python

如何在不修改脚本的情况下为脚本设置变量?

我希望这个环境变量对使用这个 virtualenv 的所有脚本都是活跃的。

这意味着修改这个脚本不是解决方案,因为有二十个脚本,我不想修改二十个脚本。

围绕 python 脚本编写一个 shell 包装器脚本是可行的,但我想避免这种情况。

过去我认为自定义 sitecustomize.py 可以用于启动代码。但是 Ubuntu(AFAIK 是唯一这样做的发行版)带有自己的 sitecustomize.py 文件,结果是我的 sitecustomize.py 没有被调用。参见 https://bugs.launchpad.net/ubuntu/+source/python2.5/+bug/197219

以下是我想如何使用 virtualenv 的一些方法:

(我再次考虑过这个问题。我想设置变量不是 python 或 virtualenv 的工作。我需要一个统一的方法来设置环境变量。在我的情况下,我想在不使用 shell 的情况下执行此操作包装器)。

最佳答案

虽然编写sitecustomize.py文件和改变bin/python都是可行的解决方案,但我建议另一种不涉及直接改变virutalenv内容的方法,只需简单地安装一个 .pth 文件:

./venv/lib/python2.7/site-packages/_set_envs.pth

内容:

import os; os.environ['FOO'] = 'bar'

测试:

$ ./venv/bin/python -c "import os; print os.getenv('FOO')"
bar

诀窍是,python 将加载每个 .pth 文件 on startup ,如果有一行以 import 开头,this line will be get executed ,允许注入(inject)任意代码。

优点是,你可以简单地写一个python包到install this .pth file with setuptools , 安装到你想要更改的 virtualenv。

关于python - 如何在virtualenv中设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52449602/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com