现在我正在使用virtualenv
我在生产中部署的应用程序。
我正在运行我的应用程序
cd $PROJECT_DIR
venv/bin/gunicorn -c gunicorn.conf.py my_app.wsgi:application
或者
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
文件结构,以便我用于在我的虚拟环境中运行应用程序的命令将保持不变。
我见过有人推荐 using pyenv
,但我不喜欢它的地方在于它将 Python 本身存储在~/.penv
其中,显然,我需要摆弄PATH
环境变量以使我的命令在 Cron 和 shell 脚本中工作,我不这样做不喜欢。如果可能的话,我想将我的所有环境都保存在一个目录中。
所以我的问题是,我可以以某种方式将 Python 编译到venv
我的项目目录中的目录中,以便目录结构与使用时相同virtualenv
吗?喜欢:
$PROJECT_DIR/
my_app/
venv/
bin/
python
python3.6
celery
gunicorn
...
lib/
python3.6/
site-packages/
celery/
gunicorn/
...