python - pipenv:部署工作流

标签 python pipenv

我正在考虑从 pip & virtualenv 切换到 pipenv。但是在研究了文档之后,我仍然对 pipenv 的创建者如何构建部署工作流一头雾水。

例如,在开发中,我有一个定义环境的 Pipfile 和一个 Pipfile.lock。使用我要部署的部署脚本

  1. git pull 通过 Github 到生产服务器
  2. pipenv install 在部署用户的主目录中创建/刷新环境

但我需要一个位于特定 目录中的 venv,该目录已在 systemd 或 supervisor 中配置。例如:command=/home/ubuntu/production/application_xy/env/bin/gunicorn module:app

pipenv 在某些位置创建环境,例如 /home/ultimo/.local/share/virtualenvs/application_xy-jvrv1OSi

使用 pipenv 部署应用程序的预期工作流程是什么?

最佳答案

您几乎没有选择。

  1. 您可以通过pipenv run 运行您的 gunicorn:

    pipenv run gunicorn module:app

这会产生轻微的开销,但具有从 $PROJECT_DIR/.env(或其他 $PIPENV_DOTENV_LOCATION)加载环境的优势。

  1. 您可以设置 PIPENV_VENV_IN_PROJECT 环境变量。这会将 pipenv 的 virtualenv 保留在 $PROJECT_DIR/.venv 而不是全局位置。

  2. 您可以使用现有的 virtualenv 并从中运行 pipenv。如果从一个 virtualenv 运行,Pipenv 将不会尝试创建自己的 virtualenv。

  3. 您可以只使用奇怪的 pipenv 创建的 virtualenv 路径。

关于python - pipenv:部署工作流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48567245/

相关文章:

python - Python else block 不打印任何内容

python - 使用 unittest.mock.patch 测试 aiohttp 客户端

python - 标记一列中的 ID 第一次出现在另一列中

java - 在同一个项目中组织时如何单独打包python模块?

python - pipenv:如何解决依赖冲突

python matplot.hist - 删除条形图之间的间隙

python - 将私有(private) devpi 服务器与 pipenv 结合使用

docker - 通过 pipenv 安装 P4Python 在 docker 文件中失败

python - 错误: the command ( (from my_script) could not be found within PATH

python - 语句的贪婪执行?