【发布时间】:2019-08-13 19:03:22
【问题描述】:
我正在尝试为我的 Python 脚本和应用程序构建 CI/CD 流程。我能够在测试容器中构建我的 venv,但是当我将它同步到目标服务器时,Python 的版本似乎中断了。这就是我正在尝试的:
- cp -a ./. $APP_DIR
- cd $APP_DIR
- python3 -m venv venv
- source venv/bin/activate
- pip3 install -r requirements.txt
...
- rsync...
所有涉及的环境都运行 Python 3.6.8
当我在目标服务器上激活 venv 并运行 which python3 时,我得到了不正确的 /usr/bin/python3。
为什么?为什么通过 rsync 部署到服务器时 venv 会中断?
我是 Python 开发和虚拟环境流程的新手。 venv 是否应该只在它们需要运行的服务器(或容器)上创建?有时我的目标服务器上没有安装 python3-venv。是否可以使用代码部署 venv 并使用它来运行我的脚本?
【问题讨论】:
-
你必须使用 virtualenv,但它不能 100% 保证工作。 virtualenv.pypa.io/en/stable/userguide/… 这就是为什么喜欢 docker 之类的东西,因为图像包含已安装的包
标签: python python-3.x continuous-integration rsync python-venv