manjaroシステムの更新によるpythonバージョンの混乱問題

2500 ワード

問題の説明
sudo pacman -Syyu

システムの更新後、元のシステムpythonは3.7から3.8にアップグレードされ、python 3を使用することが多い.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をターミナル構成に追加して、パディングと自動補完機能を有効にします.初期化中にPATHを操作するため、shellプロファイルのeval“ $(pyenv init-)” を配置してください.
$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi' >> ~/.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/df950a0a428fpyenvで指定した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などのソフトウェアが使用できない問題については、pyenvで3.7に切り替えることができるが、現在のシステムpythonで構築するソフトウェアを再利用する必要がある.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