有人可以解释一下虚拟环境的哲学吗?
我完全理解它的工作原理——如果我手动使用脚本。我必须进入某个文件夹,运行虚拟环境并在安全的环境中执行我想要的操作。chroot 的哲学。
但
我没有手动使用 Python 脚本。一切都是自动的。
我通过 cron.d 运行 some_script.py - 我应该运行一些额外的脚本吗,这些脚本将激活某些环境,运行某些脚本,然后停用?(这个脚本会运行吗?:
#!/bin/bash cd /myenvs/ virtualenv app1 source app1/bin/activate my_script.py deactivate
venvs 应该驻留在哪里(在 Debian 中,它对文件夹有非常严格的策略)并且应用程序安装在 venv 内部还是外部?
我想知道 venv 是否是某种类型的配置文件:
例如,我安装了一些应用程序apt install some_app
,它安装在 /var/lib/some_app 中
现在我可以:
- 正常使用(无 venv)
run_my_app
- 在虚拟应用程序中运行
virtualenv app1; source app1/bin/activate; run_my_app
- 在不同的虚拟应用程序中运行它
virtualenv app2; source app2/bin/activate; run_my_app
,例如使用不同版本的 jinja
或者我认为错了
- 如何将它与 nginx/apache 一起使用 - 现在 nging/apache 从某个文件夹运行 wsgi.application。但是如何在 venv 中运行它?
很多问题 - 没有谷歌答案。每个答案都解释了这一点:它非常容易使用。进入 venv 你就安全了...但我不会那样使用我的应用程序。
我为什么要问这个问题?因为 pip 警告我安装 venv 中的软件包。我很乐意这么做。但没人解释如何安装。