Запустите команды virtualenvwrapper из скрипта Python - PullRequest
0 голосов
/ 15 сентября 2018

Когда я пытаюсь создать новую виртуальную среду Python 3, используя mkvirtualenv (команда virtualenvwrapper) и os.system вот так

import os
os.system('mkvirtualenv foo')

ничего не происходит.

os.system("mate-terminal -e 'workon foo'")

тоже не работает.

Суть в том, чтобы быстро создать новую виртуальную среду и работать над ней позже для каждого проекта (это скрипт автоматизации). virtualenvwrapper - наиболее удобный вариант.

1 Ответ

0 голосов
/ 15 сентября 2018

Команды mkvirtualenv и workon являются функциями оболочки, а не исполняемыми файлами в вашем PATH [0].Чтобы сделать их доступными в оболочке, в которой вы их выполняете, вам нужно создать сценарий оболочки virtualenvwrapper.sh, определяющий их.Возможно, вам лучше позвонить virtualenv /path/to/foo напрямую.

Как активировать этот virtualenv - это еще одна история, и она будет зависеть от контекста, в котором вы хотите ее использовать. Если вы активируете его в подпроцессе, каждыйпроцесс, использующий его, должен быть запущен в или под этим потомком.

Hth, dtk

PS Кроме того, вы можете заглянуть в модуль subprocess (илидаже сторонний sh) для вызова внешних программ.Удачного кодирования:)

[0]: см. $ which workon в терминале против $ which bash

...