私はPythonインストール(2と3)でいろいろと遊んで、いくつかのパッケージをインストールしました。いくつかはapt-get
を使用しますが、ほとんどはpip
を使用します。また、apt
を含む多くのpip
- installedパッケージを新しいバージョンにアップグレードしました。
私の質問は:
これらのすべての変更を元に戻し、すべてのpip
- installed Pythonパッケージを削除し、デフォルトのリポジトリバージョンにプレインストールされたパッケージのデフォルトセットと、apt-get
ただし、他のソフトウェアの依存関係としてのみ、必要に応じて常にリポジトリバージョンにダウングレードします。
システムのPython環境を整頓し、virtualenvsのみで変更を行うためにこれを行いたいです。
システムを再インストールしなくても可能ですか?どのようにアプローチしますか?
apt-get
によって管理されるPythonパッケージをリストすることから始めます(次の1行の実行には数秒かかります。しばらくお待ちください)。
$ for pyfile in `ls /usr/lib/python2.7/dist-packages`; do dpkg -S "/usr/lib/python2.7/dist-packages/${pyfile}" | sed 's/:.*//g'; done | sort -u
注:必要に応じて、2.7を目的のpythonバージョンに置き換えます。
次に、手動でインストールしたパッケージをアンインストールします。どのパッケージをインストールしたかわからない場合は、次のコマンドを使用して手動でインストールされたすべてのパッケージのリストを取得できます( this question を参照)。
$ comm -23 <(apt-mark showmanual | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u)
次に、手動でインストールしたPythonパッケージをアンインストールします。次に例を示します。
$ Sudo apt-get remove python-tk python-scipy
次に、pipを使用してインストールしたパッケージを確認します。
$ ls -ltd /usr/local/lib/python2.7/dist-packages/*
このコマンドは、pipのインストールディレクトリの内容を最終変更日でソートしてリストし、自分でインストールしたパッケージを見つけやすくします。たとえば、アンインストールしたくない多くのpipパッケージをインストールするGoogleのgcloud
ツールをインストールしましたが、リストを見ると、すべてが正確に同時にインストールされていることが簡単にわかります。残す必要があるものと、アンインストールできるものがわかります。 pipパッケージをアンインストールする前に、インストールされているパッケージのリストのスナップショットを作成する必要があります。
$ Sudo pip freeze > $HOME/pip_freeze_snapshot.txt
次に、必要なパッケージをアンインストールします。次に例を示します。
$ Sudo pip uninstall py pytest
最後に、いくつかのpipパッケージがユーザーディレクトリにインストールされている可能性があることを忘れないでください。おそらくあなたはそれで大丈夫ですが、そうでなければ、あなたはそれらをリストすることができます:
$ ls -ltd $HOME/.local/lib/python2.7/site-packages/*
これらすべてのパッケージを削除する場合は、このディレクトリを削除するだけです。それ以外の場合は、たとえば、個々のパッケージをアンインストールするだけです:
$ pip uninstall tensorflow
他のpythonバージョン(3.5など)を確認することを忘れないでください。