我将如何通过python脚本运行lsvirtualenv或任何其他virtualenvwrapper函数?

我正在尝试运行virtualenvwrapper.sh命令(即:lsvirtualenv和mkvirtualenv).

我尝试使用

subprocess.call(["lsvirtualenv"])

但它似乎不起作用.它给了我以下错误信息:

Traceback (most recent call last):
  File "importMaster.py", line 6, in <module>
    virtualEnvs = subprocess.call(["lsvirtualenv"])
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 524, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 711, in __init__
    errread, errwrite)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1308, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

由于这些函数位于virtualenvwrapper.sh文件中,我将如何在python脚本中引用该函数?

TIA

解决方法:

您需要使用源$(哪个virtualenvwrapper.sh)&& <您的命令>使用shell = True.

例:

>>> from __future__ import print_function
>>> from subprocess import Popen, PIPE
>>> p = Popen("source $(which virtualenvwrapper.sh) && lsvirtualenv", shell=True, stdout=PIPE)
>>> print(p.stdout.read())
10leds
======


ambientlight
============

请参阅Popen Constructor的文档.

上一篇:字典树(Trie树)


下一篇:并查集类的c++封装,比较union_find algorithm四种实现方法之间的性能差别