Прямо сейчас я использую virtualenv
для своих приложений, развернутых в рабочей среде.
Я запускаю свои приложения, как
cd $PROJECT_DIR
venv/bin/gunicorn -c gunicorn.conf.py my_app.wsgi:application
or
cd $PROJECT_DIR
venv/bin/celery worker --app=my_app.celery_tasks
Недавно мы перешли на Python 3. Самая последняя версия Python 3.6 не была доступна для Ubuntu 14.04, поэтому я скомпилировал ее самостоятельно. Его компиляция также позволяет мне воспользоваться преимуществами оптимизации с помощью ./configure --enable-optimizations
.
Поэтому я думаю о том, чтобы всегда компилировать Python самостоятельно в своих развертываниях. Но в то же время сохраняя файловую структуру virtualenv
, чтобы команды, которые я использую для запуска приложений в моей виртуальной среде, оставались прежними.
Я видел, как люди рекомендовали использовать pyenv
, но что мне в нем не нравится, так это то, что он хранит сам Python в ~/.penv
и, по-видимому, мне нужно возиться с переменными среды PATH
, чтобы мои команды работали в Cron и сценариях оболочки, что мне не нравится. Я бы хотел, чтобы вся моя среда была в одном каталоге, если это возможно.
Итак, мой вопрос: могу ли я каким-то образом скомпилировать Python в каталог venv
в каталоге моего проекта, чтобы структура каталогов была такой же, как при использовании virtualenv
? Нравиться:
$PROJECT_DIR/
my_app/
venv/
bin/
python
python3.6
celery
gunicorn
...
lib/
python3.6/
site-packages/
celery/
gunicorn/
...