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

标签 python python-2.7 virtualenv 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

最佳答案

您需要使用 source $(which virtualenvwrapper.sh) && <your command>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 的文档.

关于python - 我将如何通过 python 脚本运行 lsvirtualenv 或任何其他 virtualenvwrapper 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25024874/

相关文章:

python - pip 看不到设置工具

python - 将 Python virtualenv 包与发行包混合?

python - 如何在 python 中解码来自 Facebook 的 JSON unicode 转义条目?

python - numpy中的随机正态分布矩阵

python - 二维数组中的 Tkinter 按钮绑定(bind)到相同的命令

python - 如何使一定长度的单词翻转?

Python遍历对象属性

python - aws lambda 无法导入模块 'lambda_function' : No module named 'requests'

python-2.7 - Pandas:根据百分位条件过滤数据框

python-2.7 - pycharm:如何将 pyspark 导入 pycharm