python - 将 virtualenv 与 pyenv 或 docker 一起使用有什么好处?
问题描述
我最近加入了当前项目,并在自述文件中找到了这样的步骤(我无法与创建它的人联系):
# install pyenv
git clone git://github.com/pyenv/pyenv.git ~/.pyenv
...
pyenv install 3.7.9
pyenv global 3.7.9
# install venv
pip install virtualenv
# create virtual environment
source .venv/bin/activate
# install dependencies
pip install pipenv
pipenv install --dev
...
所以我的问题是:
- 在虚拟环境中使用虚拟环境的原因/利润是什么?
- 如果我们在 python 容器中运行应用程序,使用 pyenv 或 venv 的原因/利润是什么?使用 docker 的系统 pip/python 安装所有库不是更好的主意吗?Docker 容器已经是抽象层(虚拟环境)。
pyenv 已经创建了依赖于用户的环境,可以轻松删除/更改/重置而不影响系统 python 库
以其他方式使用 virtualenv 创建的环境仍然依赖于系统库,因此不能在服务器之间轻松移动。
也许这里有一些在服务部署时使用 venv 的好处或良好实践?
甚至localstack 也在 docker中使用 virualenv。docker隔离级别还不够吗?
解决方案
推荐阅读
- javascript - 使用 formData 通过 ajax 发布时,$_POST 保持为空
- javascript - 类型错误:firebase__WEBPACK_IMPORTED_MODULE_2__.firestore 不是函数
- symfony - 添加自定义 Symfony 通知程序通道
- druid - 我可以加入两个数据源并在德鲁伊中永久创建一个新的数据源吗
- gitlab - 使用 Yarn PNP 构建部署时以 PM2 集群模式运行 NestJS
- python - 如何使用@abstractmethod 创建一个抽象接口,指定其构造函数的参数结构?
- excel - 将值粘贴到excel VBA中的过滤表中
- c# - Facebook c# sdk 错误 OAuthException - #2
- android-library - 将独立 Android 库发布到 GitHub 包的标准方法是什么
- python - 如果条件不适用于“False”值,为什么python?