apt-get
の代わりにpip
を使用して、誤ってPythonパッケージをシステムにインストールしました。これは2つの方法で行いました。
--no-site-packages
を追加するのを忘れました-その後pip install
を呼び出したときに、virtualenvではなくシステムにインストールされたPythonパッケージSudo pip install somepackage
と入力しました-virtualenvではなくシステムにインストールされたSudoVirtualenvの外でpip freeze
と入力し、そこにあるべきではないPythonパッケージのリストを見つけたため、偶然これに気付きました。だから今私の質問は:
pip freeze
リストに表示されているが、apt-get
でインストールされていないPythonパッケージ)を特定するにはどうすればよいですか?Ubuntu Oneiric(および新しいバージョンも期待)は、/usr/local/lib/python2.7/dist-packages
にpipパッケージをインストールし、/usr/lib/python2.7/dist-packages
にapt
パッケージをインストールします。したがって、前のディレクトリとSudo pip uninstall
を見つけて、そこにあるすべてのパッケージを確認してください。
Pipは現在、OSが所有するものをアンインストールしようとするアンインストールコマンドを無視します。パッケージが見つからない場合のように、エラーは発生しません。したがって、次のプロセスでアンインストールできます。
pip freeze > dump.txt
ダンプファイルを編集して、-e
「編集可能なインストール」行、==
記号(vimの%s;==.*;;g
)の後のすべてを削除し、新しい行をスペースに置き換えます(%s;\n; ;g
vim)。次に、すべての未所有パッケージをアンインストールできます
cat dump.txt | xargs Sudo pip uninstall -y
いくつかのパッケージも~/.local/lib
にインストールされていたため、この手順を2回実行する必要がありました。
AFAIK Sudo pip install
は/usr/local/lib/pythonVERSION/dist-packages
にインストールされます。システム全体のパッケージをアンインストールするには、Sudo pip uninstall
を実行する必要があります。 pip freeze
はパッケージメタデータを検索し、インストールされているものをすべてリストするようです。仮想環境内にのみ適用可能なパッケージをリストする-l
オプションが仮想環境内にありますが、仮想環境内でも同様にデフォルトのケースのようです。 /usr/local/lib/pythonVERSION/dist-packages
の関連パッケージも削除できると思いますが、あまり便利な方法ではないと思います。
Pip経由でインストールされたパッケージを削除するには、単に Ctrl+Alt+T キーボードでターミナルを開きます。開いたら、以下のコマンドを実行します。
pip uninstall < package-name >
パッケージを検索するには
pip search <package you want to search for>
どのPythonパッケージがpipによってインストールされたかを判断するには、freeze
コマンドを使用します。これにより、インストールされたパッケージとそのバージョンのリストが表示されます。すべてのインスタンスを削除し、Sudo apt-get
コマンドを使用して再インストールすることをお勧めします
Sudo apt-get install python3
Pythonパッケージからディスク領域を安全にクリーンアップする必要がありました。これはパッケージの完全な削除ですが、Pythonバージョンも移動する必要があったため、古いパッケージは必要ありませんでした。以下を使用してすべてのパッケージ名を取得し、最初の2行をスキップして最初の列を取得し、ユーザーの操作なしでアンインストールしました。
pip list | awk 'NR>2 {print $1}' | xargs -I {} pip uninstall -y {}