【发布时间】:2014-10-25 12:00:44
【问题描述】:
我有一个名为 runner.py 的 Python 脚本,它需要在 VM 上运行,在执行时没有机会安装新的 Python 库,因为 Internet 被禁用。
由于我有 VM 的 img,我已经给它 LAN,安装了 virtualenv 并在 /tmp/myenv 创建了一个 virtualenv。
由于此 VM 是一个快照,因此在它启动时(每 10 分钟)我会丢失内部的所有数据,包括 temp。
我保留了在我的计算机上创建的 venv 的副本。
VM 启动后,我可以在/home/user1/myfolder 使用文件启动它,然后它运行runner.py
runner.py 通过/bin/python 的默认python 二进制文件执行,应该:
做一些事情
将 myfolder/myenv 复制到 /tmp/myenv(因为它不存在)。
激活它。
-
最后运行 2 个 Python 脚本(参数如 -n 或 -t 可能会有所不同)将输出重定向到文本文件
output.out:./scritp1.py -n 200 -t 0.01 | ./script2.py > output.out
继续做其他事情,比如分析 output.out。
我的疑惑在第2步和第3步之间,不知道如何激活虚拟环境,继续正常执行脚本。
问题
是否可以在 Python 本身中实现?
如果没有,我已经看到可以创建一个
run_program.sh来同时处理第 2 步和第 3 步,但我不知道该怎么做。
【问题讨论】:
-
如果你在
./script1.py和./script2.py中使用#!/tmp/myenv/bin/pythonshebang 就足够了,也就是说,你可以省略第三步。
标签: python virtual-machine virtualenv