python - 在 Python 脚本中激活 virtualenv

标签 python virtual-machine virtualenv

我有一个名为 runner.py 的 Python 脚本,它需要在 VM 上运行,并且在执行时没有机会安装新的 python 库,因为 Internet 被禁用。

因为我有 VM 的 img,我已经给它 LAN,安装了 virtualenv 并在 /tmp/myenv 中创建了一个 virtualenv。 由于这个 VM 是一个快照,我在它启动时(每 10 分钟)丢失了里面的所有数据,包括临时数据。 我保留了在我的计算机上创建的那个 venv 的副本。

启动 VM 时,我可以使用位于 /home/user1/myfolder 的文件启动它,然后它运行 runner.py

runner.py 通过位于 /bin/python 的默认 python 二进制文件执行,应该:

  1. 做一些事情

  2. 将 myfolder/myenv 复制到/tmp/myenv(因为它不在那里)。

  3. 激活它。

  4. 最后运行 2 个 Python 脚本(参数如 -n 或 -t 可以不同)将输出重定向到文本文件 output.out:

    ./scritp1.py -n 200 -t 0.01 | ./script2.py > 输出.out

  5. 继续做其他事情,比如分析 output.out。

我的疑惑在第2步和第3步之间,我不知道如何激活虚拟环境并继续正常执行脚本。

问题

  • 是否可以用 Python 本身来实现?

  • 如果没有,我看到可以制作一个 run_program.sh 来同时处理步骤 2 和 3,但我不知道如何去做。

最佳答案

你不需要激活virtualenv;使用 virtualenv python 二进制文件运行脚本就足够了,例如 /tmp/myenv/bin/python

您可以为 shell 命令激活 virtualenv:

. /tmp/myenv/bin/activate && ./scritp1.py -n 200 -t 0.01 | ./script2.py > output.out

如果 ./script1.py 使用 #!/usr/bin/env python shebang 或等价物,它会起作用。

关于python - 在 Python 脚本中激活 virtualenv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26562118/

相关文章:

python - 如何将 StringTemplate 引擎集成到 CherryPy Web 服务器中

java - 修改虚拟机磁盘上Android系统中的java类文件

virtual-machine - 访问 Bluemix 中的 Openstack API

python - 属性错误 : install_layout when attempting to install a package in a virtual environment

python - 将 DataFrame 中的多个值与另一个不同形状的值进行比较

python - 在python中声明和填充二维数组

python - 在Python中将浮点列表加入空格分隔的字符串

virtual-machine - 你怎么知道chef是否在VM上运行(即vagrant)

Python:找不到命令 virtualenv

numpy - 无法在特定计算机上 `pip install numpy`