在Python脚本中激活virtualenv

时间:2014-10-25 12:00:44

标签: python virtual-machine virtualenv

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

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

启动虚拟机后,我可以使用/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> output.out

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

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

    问题

    • 是否可以在Python中使用它?

    • 如果没有,我看到可以让run_program.sh同时处理第2步和第3步,但我不知道如何处理。

1 个答案:

答案 0 :(得分:1)

您无需激活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或同等产品,则可以使用。