回答:
これは、渡すオプションと、システム/パッケージ内のdistutils構成ファイルのinstall内容によって異なります。これらの方法で指定されたディレクトリの外でファイルが変更されるとは思いません。
特に、現時点では、distutilsにはアンインストールコマンドがありません。
また、パッケージ/卵を削除すると、依存関係の問題が発生する可能性があることにも注意してeasy_installください。このような問題を緩和しようとするユーティリティなどです。
別のタイムスタンプベースのハック:
touch /tmp/tspython setup.py install --prefix=<PREFIX>find <PREFIX> -cnewer /tmp/ts | xargs rm -r| xargs rm -r。各ファイルを手動で確認することをお勧めします。ext4(およびその他のファイルシステム)では、findすべてのフォルダーもリストされます。プレフィックスがだった場合は/usr、削除し/usr/*ます。
これがテストや開発の目的である場合、setuptoolsには、変更を加えるたびに更新する開発コマンドがあります(したがって、変更を加えるたびにアンインストールして再インストールする必要はありません)。また、このコマンドを使用してパッケージをアンインストールすることもできます。
これを使用すると、スクリプトとして宣言したものはすべて、残存ファイルとして残されます。
install --record + xargs rm
sudo python setup.py install --record files.txt
xargs sudo rm -rf < files.txt
すべてのファイルを削除し、空のディレクトリを残します。
これは理想的ではなく、パッケージの競合を回避するのに十分なはずです。
そして、必要に応じて手動でジョブを完了することができますfiles.txt。または、勇気を出して空のディレクトリの削除を自動化することもできます。
安全なヘルパーは:
python-setup-uninstall() (
sudo rm -f files.txt
sudo python setup.py install --record files.txt && \
xargs rm -rf < files.txt
sudo rm -f files.txt
)
Python 2.7.6、Ubuntu 14.04でテスト済み。
WindowsのPythonの場合:
python -m pip uninstall "package_keyword"
uninstall **** (y/n)?
私はpythonパッケージをアンインストールしただけで、完全に実行したかどうかはわかりませんが、自信はあります。
パッケージ内のすべてのファイルのタイムスタンプはほぼ同じで、他のファイルはないという前提で、日付に基づいて並べられたすべての python関連ファイルのリストを取得することから始めました。
幸いなことに、Pythonはの下にインストールされてい/opt/Python-2.6.1ます。Linuxディストリビューションに付属しているPythonを使用していた/usrとしたら、すべてを精査しなければならなかったでしょう。
次に、そのリストを調べたところ、核にしたかったすべての要素が1つのディレクトリ/opt/Python-2.6.1/lib/python2.6/site-packages/module-name/と1つのファイルで構成されていることがわかりました/opt/Python-2.6.1/lib/python2.6/site-packages/module-x.x.x_blah-py2.6.egg-info。
だから私はそれらを削除しました。
これは、日付でソートされたファイルのリストを取得する方法です。
find "$@" -printf '%T@ ' -ls | sort -n | cut -d\ -f 2-
(ちなみに、それはGNUの「検索」である必要があると思います。OSXで得られるフレーバーは、「-printf '%T @'」について知りません。)
私はそれを使用するすべての時間。
Mac OSXでは、pathToPython / site-packages /の下にある次の2つのディレクトリを手動で削除します。
たとえば、distutilsでインストールされたプロジェクトであるpyasn1を削除するには:
サイトパッケージの場所を確認するには:
python -m site
ERROR: flake8 3.7.9 has requirement pycodestyle<2.6.0,>=2.5.0, but you'll have pycodestyle 2.3.1 which is incompatible.
ERROR: nuscenes-devkit 1.0.8 has requirement motmetrics<=1.1.3, but you'll have motmetrics 1.2.0 which is incompatible.
Installing collected packages: descartes, future, torch, cachetools, torchvision, flake8-import-order, xmltodict, entrypoints, flake8, motmetrics, nuscenes-devkit
Attempting uninstall: torch
Found existing installation: torch 1.0.0
Uninstalling torch-1.0.0:
Successfully uninstalled torch-1.0.0
Attempting uninstall: torchvision
Found existing installation: torchvision 0.2.1
Uninstalling torchvision-0.2.1:
Successfully uninstalled torchvision-0.2.1
Attempting uninstall: entrypoints
Found existing installation: entrypoints 0.2.3
ERROR: Cannot uninstall 'entrypoints'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
次に、次のように入力します。
conda uninstall entrypoints
pip install --upgrade pycodestyle
pip install nuscenes-devkit
できた!