python - 如何使用 `venv` 更新 Python 虚拟环境以使用更新版本的 Python?
问题描述
我最近安装了 Python 3.8.0 和 Python 3.7.4。
我有一些虚拟环境(使用python -m venv <directory>
基于 v3.7.4 创建的。如何更新它们以使用 v3.8.0?
我是否需要创建一个新的虚拟环境并重新安装依赖项、脚本等?
注意:有一些现有的问答(例如这个)处理旧的virtualenv
包/工具。我特别询问新的内置venv
模块,它是自 v3.3 以来 Python 的标准内置模块,与virtualenv
.
解决方案
我猜你要找的是--upgrade
参数。
python -m venv --help
usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear]
[--upgrade] [--without-pip] [--prompt PROMPT]
ENV_DIR [ENV_DIR ...]
Creates virtual Python environments in one or more target directories.
positional arguments:
ENV_DIR A directory to create the environment in.
optional arguments:
-h, --help show this help message and exit
--system-site-packages
Give the virtual environment access to the system
site-packages dir.
--symlinks Try to use symlinks rather than copies, when symlinks
are not the default for the platform.
--copies Try to use copies rather than symlinks, even when
symlinks are the default for the platform.
--clear Delete the contents of the environment directory if it
already exists, before environment creation.
--upgrade Upgrade the environment directory to use this version
of Python, assuming Python has been upgraded in-place.
--without-pip Skips installing or upgrading pip in the virtual
environment (pip is bootstrapped by default)
--prompt PROMPT Provides an alternative prompt prefix for this
environment.
您需要使用目标 python 版本运行它,例如在这种情况下:
python3.8 -m venv --upgrade <path_to_dir>
假设 python3.8 是您的 python 3.8.0 可执行文件的名称。
推荐阅读
- c - OpenACC 循环未矢量化/并行化:包含调用
- java - 创建一个等待所有 Schedulers.io() 完成的 Mockito 测试用例
- java - 以编程方式正确打开“设置”中的“关于设备”页面?
- sql - 如何计算内连接函数的结果
- python - 在 Django 中编辑验证错误
- angular - Angular 9:在构造函数运行之前检查组件模板
- c++ - std::sort() C++ 的自定义比较函数
- ruby-on-rails - ruby-on-rails 中的 Mongoid
- python - 熊猫“替换”方法无法替换点(。)字符
- flutter - Flutter Hero 动画不适用于 SliverAppBar