を使用してPythonパッケージをインストールしましたpython setup.py install
。
どうすればアンインストールできますか?
注:使用は避けてpython setup.py install
くださいpip install .
すべてのファイルを手動で削除する必要があります。また、インストールで手動で行ったその他の作業をすべて元に戻す必要があります。
すべてのファイルのリストがわからない場合は、--record
オプションを使用して再インストールし、これによって生成されるリストを確認できます。
インストールされているファイルのリストを記録するには、次を使用できます。
python setup.py install --record files.txt
アンインストールする場合は、xargsを使用して削除できます。
xargs rm -rf < files.txt
または、Windowsを実行している場合は、Powershellを使用します。
Get-Content files.txt | ForEach-Object {Remove-Item $_ -Recurse -Force}
次に、含まれているディレクトリも削除/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/my_module-0.1.egg/
します(例:。) macOS
。ファイルはありませんが、Pythonは空のモジュールをインポートします。
>>> import my_module
>>> my_module.__file__
None
削除されると、Pythonは次のように表示します。
>>> import my_module
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'my_module'
私にとっては、以下が主に機能します。
pip がインストールされている。例:
$ easy_install pip
インストールされたパッケージが pip の観点からどのように命名されているかを確認してください。
$ pip freeze
これにより、インストールした (および pip によって検出された) すべてのパッケージの名前が一覧表示されます。名前は長くなる場合があります。その場合は、 と の後に表示されているパッケージの名前だけを使用して#egg=
ください。また、ほとんどの場合、バージョン部分を無視することもできます (その後に続くもの==
または-
)。
次に、パッケージをアンインストールします。
$ pip uninstall package.name.you.have.found
パッケージの削除について確認を求められた場合、あなたは幸運で、パッケージは削除されます。
pip は、pip によってインストールされたすべてのパッケージを検出します。また、easy_install または setup.py を介してインストールされたほとんどのパッケージを検出しますが、まれに失敗する場合があります。
ttr.rdstmc
これは、MS Windows で名前が付けられたパッケージを使用したローカル テストの実際のサンプルです。
$ pip freeze |grep ttr
ttr.aws.s3==0.1.1dev
ttr.aws.utils.s3==0.3.0
ttr.utcutils==0.1.1dev
$ python setup.py develop
.....
.....
Finished processing dependencies for ttr.rdstmc==0.0.1dev
$ pip freeze |grep ttr
ttr.aws.s3==0.1.1dev
ttr.aws.utils.s3==0.3.0
-e hg+https://vlcinsky@bitbucket.org/vlcinsky/ttr.rdstmc@d61a9922920c508862602f7f39e496f7b99315f0#egg=ttr.rdstmc-dev
ttr.utcutils==0.1.1dev
$ pip uninstall ttr.rdstmc
Uninstalling ttr.rdstmc:
c:\python27\lib\site-packages\ttr.rdstmc.egg-link
Proceed (y/n)? y
Successfully uninstalled ttr.rdstmc
$ pip freeze |grep ttr
ttr.aws.s3==0.1.1dev
ttr.aws.utils.s3==0.3.0
ttr.utcutils==0.1.1dev
上記の内容はすべて適用されますが、現在利用可能な小さな変更があります。
最近の python バージョンには、ensurepip
オフライン時でも pip をインストールできるパッケージが付属しています。
$ python -m ensurepip --upgrade
一部のシステム (Debian Jessie など) では、これは利用できません (システムの python インストールが壊れないようにするため)。
grep
またはを使用してfind
上記の例は、インストール済みであることを前提としていますgrep
。私は (マシンに MS Windows があった時点で) Linux ユーティリティのセット (grep を含む) をインストールしていました。または、ネイティブの MS Windows を使用するfind
か、単にそのフィルタリングを無視して、検出された python パッケージの少し長いリストで名前を見つけます。
まず、インストールしたファイルを記録します。以前に実行したことがある場合でも、このコマンドを繰り返すことができますsetup.py install
。
python setup.py install --record files.txt
アンインストールする場合は、次のことができます。
sudo rm $(cat files.txt)
これは、rm コマンドが空白で区切られた削除するファイルのリストを取得し、インストール レコードがまさにそのようなリストであるためです。
これで、python はインストール中にインストールする選択肢を提供pip
します (私は Windows を使用していますが、少なくとも python は Windows でそうします!)。Python のインストール中にインストールすることを選択したことを考慮するpip
と (デフォルトであるため、実際に選択する必要はありません)、pip
既にインストールされています。次に、pip
コマンドプロンプトに入力すると、ヘルプが表示されるはずです。必要な使用説明書はそこにあります。たとえばpip list
、インストールされているパッケージのリストが表示されます。使用できます
pip uninstall package_name
不要になったパッケージをアンインストールします。詳細はこちら (pip ドキュメント)を参照してください。
怠惰な方法:配布パッケージの作成後に最初に再インストールする場合は、Windowsインストールメニュー(Windowsを使用している場合)またはrpmコマンドからアンインストールするだけです。
例えば、
python setup.py bdist_wininst
dist/foo-1.0.win32.exe
(もちろん「foo」は例です)。
pythonパッケージディレクトリに移動し、.eggファイルを削除します。例:python 2.5(ubuntu)の場合:/usr/lib/python2.5/site-packages/
Python 2.6(ubuntu)の場合:/usr/local/lib/python2.6/dist-packages/
おそらく、代替手段としてこれを行うことができます:-
1) Python のバージョンを取得します -
[linux machine]# python
Python 2.4.3 (#1, Jun 18 2012, 14:38:55)
-> 上記のコマンドにより、現在の python バージョンである2.4.3が得られます。
2) python のインストールディレクトリを取得 -
[linux machine]# whereis python
python: /usr/bin/python /usr/bin/python2.4 /usr/lib/python2.4 /usr/local/bin/python2.5 /usr/include/python2.4 /usr/share/man/man1/python.1.gz
-> 上記のコマンドから、インストール ディレクトリを取得できます - /usr/lib/python2.4/site-packages
3) ここから、パッケージと python Egg ファイルを削除できます。
[linux machine]# cd /usr/lib/python2.4/site-packages
[linux machine]# rm -rf paramiko-1.12.0-py2.4.egg paramiko-1.7.7.1-py2.4.egg paramiko-1.9.0-py2.4.egg
これは私にとってはうまくいきました..そして、私を悩ませていたパッケージをアンインストールすることができました:)
setup.py を開いてパッケージ名を見つけ、pip にアンインストールするように依頼できると思います。
名前が「METADATA」変数で使用可能であると仮定すると、次のようになります。
pip uninstall $(python -c "from setup import METADATA; print METADATA['name']")
マーティンが言ったことを拡張して、インストール出力を記録し、少しの bash スクリプトを作成すると、うまくいきます。これが私がすることです...
for i in $(less install.record);
sudo rm $i;
done;
そしてプレスト。アンインストールしました。
次のように、bash を使用してコマンドを読み取り、関連ファイルを削除することをお勧めします。
sudo python setup.py install --record files.txt
sudo bash -c "cat files.txt | xargs rm -rf"