虚拟环境的哲学

虚拟环境的哲学

有人可以解释一下虚拟环境的哲学吗?

我完全理解它的工作原理——如果我手动使用脚本。我必须进入某个文件夹,运行虚拟环境并在安全的环境中执行我想要的操作。chroot 的哲学。

我没有手动使用 Python 脚本。一切都是自动的。

  1. 我通过 cron.d 运行 some_script.py - 我应该运行一些额外的脚本吗,这些脚本将激活某些环境,运行某些脚本,然后停用?(这个脚本会运行吗?:

     #!/bin/bash
     cd /myenvs/
     virtualenv app1
     source app1/bin/activate
     my_script.py
     deactivate
    
  2. venvs 应该驻留在哪里(在 Debian 中,它对文件夹有非常严格的策略)并且应用程序安装在 venv 内部还是外部?

我想知道 venv 是否是某种类型的配置文件:

例如,我安装了一些应用程序apt install some_app,它安装在 /var/lib/some_app 中

现在我可以:

  1. 正常使用(无 venv)run_my_app
  2. 在虚拟应用程序中运行virtualenv app1; source app1/bin/activate; run_my_app
  3. 在不同的虚拟应用程序中运行它virtualenv app2; source app2/bin/activate; run_my_app,例如使用不同版本的 jinja

或者我认为错了

  1. 如何将它与 nginx/apache 一起使用 - 现在 nging/apache 从某个文件夹运行 wsgi.application。但是如何在 venv 中运行它?

很多问题 - 没有谷歌答案。每个答案都解释了这一点:它非常容易使用。进入 venv 你就安全了...但我不会那样使用我的应用程序。

我为什么要问这个问题?因为 pip 警告我安装 venv 中的软件包。我很乐意这么做。但没人解释如何安装。

相关内容