функции virtualenvwrapper недоступны в сценариях оболочки

Итак, я снова создаю хорошую программу на python, которая делает мою жизнь еще более легкой и экономит много времени. Конечно, для этого используется virtualenv, созданный с помощью функции mkvirtualenv virtualenvwrapper. В проекте есть файл requirements.txt с несколькими необходимыми библиотеками (запросы тоже :D), и программа не будет работать без этих библиотек.

Я пытаюсь добавить bin/run-app исполняемый shell скрипт, который будет находиться в моем пути (симлинк фактически). Теперь, внутри этого скрипта, мне нужно переключиться на virtualenv, прежде чем я смогу запустить эту программу. Поэтому я поместил это в

#!/bin/bash
# cd into the project directory
workon "$(cat .venv)"
python main.py

Файл .venv содержит имя virtualenv. Но когда я запускаю этот сценарий, я получаю workon: command not found ошибку.

Конечно, у меня есть virtualenvwrapper.sh в моем bashrc, но он, похоже, не доступен в этом сценарии.

Итак, как я могу получить доступ к этим функциям virtualenvwrapper здесь? Или я делаю это неправильно? Как вы запускаете инструменты python, каждый из которых имеет свой собственный virtualenv?

55
задан Shrikant Sharat 24 September 2011 в 00:06
поделиться