如何升级pyenv virtualenv中的Python版本和包?

问题描述 投票:0回答:4

我使用

pyenv
pyenv-virtualenv
来管理Python虚拟环境。

我有一个项目在

Python 3.4
虚拟环境中工作。

所以所有安装的软件包(

pandas
numpy
等)都不是最新版本。

我想做的是将

Python
版本从3.4升级到3.6,并将其他软件包版本升级到更高版本。

我怎样才能轻松做到这一点?

python virtualenv pyenv
4个回答
39
投票

以下是如何针对给定的虚拟环境切换到

3.9.0
venv-name
:

pip freeze > requirements-lock.txt
pyenv virtualenv-delete venv-name
pyenv install -s 3.9.0
pyenv virtualenv 3.9.0 venv-name
pyenv activate venv-name
pip install -r requirements-lock.txt

一旦一切正常,您就可以安全地删除临时要求锁定文件

rm requirements-lock.txt

请注意,使用

pip freeze > requirements.txt
通常不是一个好主意,因为此文件通常用于处理您的包要求(不一定
pip freeze
输出)。为了确定起见,最好使用不同的(临时)文件。


10
投票

使用

pip freeze > requirements.txt
保存已安装软件包的列表。

使用 python 3.6 创建一个新的 venv。

使用

pip install -r requirements.txt
安装保存的软件包。当 pip 在其缓存中发现万能轮时,它会从缓存中安装该包。其他包将被下载、缓存、构建和安装。


6
投票

OP 要求与 Python 一起升级软件包。没有其他答案解决软件包的升级问题。锁定文件不是这里的答案。


将包保存到需求文件中不带版本

pip freeze | cut -d"=" -f1 > requirements-to-upgrade.txt

删除您的环境,使用升级后的 Python 版本创建一个新环境,然后安装需求文件。

pyenv virtualenv-delete venv-name
pyenv virtualenv 3.6.8 venv-name
pip install -r requirements-to-upgrade.txt

pip 中的依赖解析器应该尝试查找最新的包。这假设您安装了升级的 Python 版本(例如,

pyenv install 3.6.8
)。


-4
投票

如果您使用 anaconda,只需输入

conda 安装 python==$pythonversion$

© www.soinside.com 2019 - 2024. All rights reserved.