use*_*632 5 python virtualenv pyenv
我使用的pyenv,pyenv-virtualenv用于管理蟒蛇虚拟环境。
我有一个在Python 3.4虚拟环境中工作的项目。
因此,所有已安装的软件包(pandas,numpy等)都不是最新版本。
我要做的是将Python版本从3.4 升级到3.6,以及将其他软件包版本升级到更高版本。
我如何轻松做到这一点?
cgl*_*cet 41
以下是切换给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
Run Code Online (Sandbox Code Playgroud)
一旦一切正常,您就可以安全地删除临时需求锁定文件:
rm requirements-lock.txt
Run Code Online (Sandbox Code Playgroud)
请注意,使用通常pip freeze > requirements.txt不是一个好主意,因为此文件通常用于处理您的包要求(不一定是 pip freeze输出)。为了确定起见,最好使用不同的(临时)文件。
使用pip freeze > requirements.txt以节省安装的软件包列表。
使用python 3.6创建一个新的venv。
使用来安装保存的软件包pip install -r requirements.txt。当pip在其缓存中找到通用转盘时,它将从缓存中安装软件包。其他软件包将被下载,缓存,构建和安装。
OP 要求将软件包与 Python 一起升级。没有其他答案解决软件包的升级问题。锁定文件不是这里的答案。
将您的包保存到不带版本的需求文件中。
pip freeze | cut -d"=" -f1 > requirements-to-upgrade.txt
Run Code Online (Sandbox Code Playgroud)
删除您的环境,使用升级后的 Python 版本创建一个新环境,然后安装要求文件。
pyenv virtualenv-delete venv-name
pyenv virtualenv 3.6.8 venv-name
pip install -r requirements-to-upgrade.txt
Run Code Online (Sandbox Code Playgroud)
pip 中的依赖解析器应尝试查找最新的包。这假设您已经安装了升级的 Python 版本(例如,pyenv install 3.6.8)。
| 归档时间: |
|
| 查看次数: |
3550 次 |
| 最近记录: |