python 3.7
にアップグレードしたところ、すべてのモジュールが以前のバージョンのままであることに気付きました。 Djangoはもう認識されていません。すべてを新しいバージョンに転送するにはどうすればよいですか?今は少し迷っています。新しいバージョンがどこにインストールされているのかさえわかりません。
編集:
$ which python3.6
を実行すると、ターミナルに存在しないと表示されますが、python3.6
に/usr/local/lib/
ディレクトリがあり、すべてのモジュールがインストールされています。
同じディレクトリに/usr/local/lib/
ディレクトリがあります。python3.7
ディレクトリにはいくつかのモジュールがインストールされていますが、多くが欠落しています。ただし、Finderでファイルpython3.7
を検索しても、表示されません。 $ which python3.7
を実行するとパスは/usr/local/bin
になるため、ディレクトリと同じパスではありません。
誰もが何が起こったのかを見て、すべてのモジュールをpython3.7
に転送する方法を知っていますか?
互換性の問題が発生する可能性があるため、すべてのパッケージを再インストールする方が安全です。
pip3.6 list | awk '{print $1}' | xargs -I{} pip3.7 install {}
古いpythonバージョンが削除された場合でも、現在のpythonバージョンのpipを--path
オプションとともに使用して一覧表示することができます。以前のバージョンでインストールされたすべてのモジュール。
たとえば、インストールされているすべてのユーザーのpythonモジュールを3.7から3.8に移行する
pip freeze --path ~/.local/lib/python3.7/site-packages > requirements.txt
pip install --user -r requirements.txt
ちなみに、私は常にpip install
と--user
を使用し、システム全体のインストールはLinuxディストリビューションのパッケージマネージャーに任せています。
場合によっては、古いバージョンでpip freeze
する機会がないことがあります。これは、私がすでに更新していて、古いバージョンが削除されているためです。一部のパッケージを回復するために私が取ったいくつかの対策がありますが、すべてのパッケージがこの修正で機能するかどうかはわかりません(例:ホイールで構築されたパッケージ)
mv /your/path/to/python3.{6,7}/site-packages/
/usr/local/
または~/.local
)にインストールされたパッケージの場合は、念のため、pipを get-pip.py で再インストールしてください。これで、ほとんどのパッケージが機能するはずです。何かが誤動作した場合、pip reinstall
が機能します。それでも100%動作させたい場合は、pip freeze
now。????