【问题标题】:open python script in virtualenv from python script从 python 脚本在 virtualenv 中打开 python 脚本
【发布时间】:2018-01-09 15:47:36
【问题描述】:

我想从另一个 python 脚本打开一个 python 脚本,但是在 virtualenv 中 我试过os.systemsubprocess.call 但他们无法打开virtualenv

os.system("workon cv") warning:

sh: 1: workon: not found

cmd = 'workon cv'

subprocess.call(cmd.split())     error:

    OSError: [Errno 2] No such file or directory

【问题讨论】:

  • 你可以将它包装在一个模块中,将模块放在脚本文件夹中或将模块的路径添加到python路径并导入它。
  • 您是否尝试过将完整路径添加到“workon”二进制文件中?或者,如果它是 virtualenv activate 等其他东西的别名,那么执行 os.system('/usr/bin/virtualenv activate cv') ?

标签: python opencv virtualenv virtualenvwrapper


【解决方案1】:

workon 不是程序,而是来自virtualenvwrapper 的 shell 函数。您不能在子进程中调用它,因为它会更改当前的 shell 环境。

【讨论】:

    【解决方案2】:

    我解决了这个问题:

    1. 我要调用其他python脚本的python脚本应该在virtualenv中打开

    2. 将所有代码放在main函数中并导入文件:import FileName

    然后调用主函数:FileName.main()

    【讨论】: