如果我有一个激活虚拟环境的 Python 脚本,就像这样:
#!/path/to/venv/bin/python
如何在不修改此脚本的情况下设置变量?我希望这个环境变量对使用这个虚拟环境的所有脚本都有效。
这意味着修改此脚本不是解决方案,因为有二十个脚本,我不想修改二十个脚本。
编写一个围绕Python脚本的shell包装器脚本可以解决问题,但我想避免这样做。
过去,我认为可以使用自定义
sitecustomize.py
作为启动代码。但Ubuntu(据我所知是唯一这样做的发行版)附带了其自己的sitecustomize.py文件,结果我的sitecustomize.py不会被调用。参见https://bugs.launchpad.net/ubuntu/+source/python2.5/+bug/197219
以下是我想使用虚拟环境的一些方式:- 通过Unix cron执行的脚本。 - systemd服务中的虚拟环境。请参阅:如何在systemd服务单元中启用虚拟环境? - 通过mod_wsgi(Apache):https://modwsgi.readthedocs.io/en/develop/user-guides/virtual-environments.html#daemon-mode-single-application (我再次考虑了一下。我想设置变量不是Python或虚拟环境的工作。我需要一种统一的方法来设置环境变量。在我的情况下,我希望这样做而不使用shell包装器)。
bin/activate
shell脚本更新您的PATH变量,但这不是使用Python二进制文件的必要条件。 - Martijn Pieters