欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

因为manjaro系统更新而导致的python版本混乱问题

程序员文章站 2022-07-14 16:17:19
...

问题描述

sudo pacman -Syyu

系统更新后,原本的系统python从3.7升级到了3.8,导致很多原本用python3.7创建的虚拟环境和3.7构建的youcomplete等无法使用,

解决方法

使用pyenv和pyenv-virtualenv来管理python版本,不使用系统python创建虚拟环境,改而使用pyenv下载的python创建虚拟环境
下载pyenv和pyenv-virtualenv

sudo pacman -Sy pyenv
sudo pacman -Sy pyenv-virtualenv

下面开始写入配置

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile

Zsh note: Modify your ~/.zshrc file instead of ~/.bash_profile.
Ubuntu and Fedora note: Modify your ~/.bashrc file instead of ~/.bash_profile.
Proxy note: If you use a proxy, export http_proxy and HTTPS_PROXY too.

将pyenv init添加到您的终端配置中以启用填充和自动补全功能,请确保将eval“ $(pyenv init-)”放在shell配置文件的末尾,因为它在初始化期间会操纵PATH。

$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bash_profile

Zsh note: Modify your ~/.zshrc file instead of ~/.bash_profile.
fish note: Use pyenv init - | source instead of eval (pyenv init -).
Ubuntu and Fedora note: Modify your ~/.bashrc file instead of ~/.bash_profile.

下载可由pyenv管理的python:

pyenv install 3.8.1
pyenv install 3.7.6

如果下载缓慢请参考:https://www.jianshu.com/p/df950a0a428f
使用pyenv中指定的python版本创建虚拟环境,这样下次系统更新后即使系统python变化了,用pyenv创建的虚拟环境依然不会受到影响。

pyenv virtualenv 3.7.6 ml_learn_3.7.6

pyenv创建的虚拟环境也需要用pyenv**和关闭:

pyenv activate ml_learn_3.7.6
pyenv deactivate

关于一些由过去系统python构建的youcomplete等软件无法使用问题,需要将软件重新用现在的系统python构建,虽然可以用pyenv切换到3.7.6的版本,使用这些命令:
修改全局python版本:
切换全局使用的python版本

pyenv global 3.7.6

切换当前shell内使用的python版本

pyenv shell 3.7.6

切换当前文件内使用的python版本

pyenv local 3.7.6

但每次用都切换太麻烦,还是重构软件,保持global python一直是系统python方便点。
参考网址:
https://github.com/pyenv
https://github.com/pyenv/pyenv-virtualenv

相关标签: manjaro