web-dev-qa-db-ja.com

python setup.pyアンインストール

私はpython setup.py installと一緒にpythonパッケージをインストールしました。

アンインストールする方法

705
flybywire

手動ですべてのファイルを削除し、インストールによって手動で行われたものを元に戻す必要があります。

あなたはすべてのファイルのリストがわからない場合は、--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}

それから、含まれているディレクトリも削除します。 macOS/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/my_module-0.1.Egg/。ファイルはありませんが、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'
894

私にとっては、次のものが主に機能します。

pIPがインストールされている、例えば:

$ easy_install pip

あなたのインストールしたパッケージはpipの観点からどのように命名されていますか。

$ pip freeze

これはあなたがインストールした(そしてpipによって検出された)すべてのパッケージの名前をリストします。名前はいつか長くすることができます、そしてそれから#Egg=の後に表示されているパッケージの名前だけを使用してください。ほとんどの場合、バージョン部分を無視することもできます(==または-の後に続くものは何でも)。

それからパッケージをアンインストールします。

$ pip uninstall package.name.you.have.found

パッケージの削除について確認を求められた場合、あなたはラッキーガイであり、削除されます。

pipは、pipによってインストールされたすべてのパッケージを検出します。それはまたeasy_installかsetup.pyを通してインストールされたパッケージの大部分を検出するでしょう、しかしこれはいくつかのまれなケースで失敗するかもしれません。

これは、MS Windowsで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 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://[email protected]/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

編集2015-05-20

とにかく、上で書かれていることのすべてがまだ適用されます、現在利用可能な小さな修正があります。

Python 2.7.9とpython 3.4にpipをインストールする

最近のPythonバージョンには、オフラインのときでもpipをインストールできるパッケージensurepipが付属しています。

$ python -m ensurepip --upgrade

(Debian Jessieのような)いくつかのシステムではこれが利用できません(システムのpythonインストールが壊れるのを防ぐため)。

grepまたはfindを使用する

上記の例では、grepがインストールされていると仮定しています。私は(私のマシンにMS Windowsがあったときに)linuxユーティリティのセット(grepを含む)をインストールしました。あるいは、ネイティブのMS Windows findを使用するか、単にそのフィルタリングを無視して、検出されたpythonパッケージのもう少し長いリストから名前を見つけます。

209
Jan Vlcinsky

#1の答えには問題があります。

  • Mac上では動作しません。
  • スペースや他の特殊文字を含むファイルがインストールされていると、xargsコマンドは失敗し、個々の単語に一致するファイル/ディレクトリを削除します。
  • -r内のrm -rfは不要であり、最悪の場合、不要なものを削除する可能性があります。

代わりに、unixライクの場合:

Sudo python setup.py install --record files.txt
# inspect files.txt to make sure it looks ok. Then:
tr '\n' '\0' < files.txt | xargs -0 Sudo rm -f --

そして窓のために:

python setup.py bdist_wininst
dist/foo-1.0.win32.exe

setup.py installのアンインストールには解決できない問題もありますが、これは一般的なケースでは邪魔になりません。より完全な答えについては、このWikiページを参照してください。

https://ofswiki.org/wiki/Uninstalling_setup.py_install

71
Ian Kelling

最初にインストールしたファイルを記録してください。以前にsetup.py installを実行したことがある場合でも、このコマンドを繰り返すことができます。

python setup.py install --record files.txt

あなたがアンインストールしたいときは、ただすることができます:

Sudo rm $(cat files.txt)

Rmコマンドは空白で区切られたファイルのリストを削除するために使用します。インストールレコードはそのようなリストにすぎません。

32
nathan

これでpythonはインストール中にpipをインストールすることを選択できるようになりました(私はWindows上にいますが、少なくともpythonはWindows用です)。 pythonのインストール中にpipをインストールすることを選択したことを考えると(デフォルトであるため実際には選択する必要はありません)、pipは既にインストールされています。それから、コマンドプロンプトでpipと入力すると、ヘルプが表示されるはずです。そこに必要な使い方の説明があります。例えば。 pip listはインストールされているパッケージのリストを表示します。あなたが使用することができます

pip uninstall package_name

不要になったパッケージをアンインストールします。もっと読む ここ(pipドキュメント)

15

怠惰な方法:あなたが配布パッケージを作成した後にあなたが最初にそれを再インストールするならば、単にWindowsインストールメニュー(あなたがWindowsを使っているなら)またはrpmコマンドからアンインストールしなさい。

例えば、

python setup.py bdist_wininst
dist/foo-1.0.win32.exe

( "foo"はもちろんの例です)。

8
RedGlyph

あなたのpythonパッケージディレクトリに行き、あなたの.Eggファイルを削除してください。

Python 2.6(ubuntu)の場合:/usr/local/lib/python2.6/dist-packages/

5
user149513

おそらくあなたは代替手段としてこれを行うことができます -

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

これは私のために働いた..そして私は私を困惑させていたパッケージをアンインストールすることができました:)

3
COD3R

私はあなたがsetup.pyを開き、パッケージ名を見つけ、そしてそれをアンインストールするようにpipに頼むことができると思います。

名前が 'METADATA'変数で利用可能であると仮定します。

pip uninstall $(python -c "from setup import METADATA; print METADATA['name']")
3
ThorSummoner

正確に質問に答えるのではなく、毎日私に役立つ何か

でパッケージをインストールする

pip install .

これはパッケージを$HOME/.localに置きます。でアンインストール

pip uninstall <package_name>
2
Nico Schlömer

Martinが言ったことを拡張して、インストールの出力とちょっとしたbashスクリプトを記録しておくと、うまくうまくいきます。これが私のやり方です...

for i in $(less install.record);
Sudo rm $i;
done;

そしてプレスト。アンインストール.

1
seabass

私は過去のある時点で私のグローバル環境で偶然に "python setup.py install"を実行していましたが、アンインストールするのは非常に困難でした。これらの解決策は役に立ちませんでした。 「pip uninstall」は「splunk-appinspectをアンインストールできません。アンインストールするファイルが見つかりませんでした」と機能しませんでした。 「Sudo pip uninstall」が機能しませんでした「要件splunk-appinspectをアンインストールできません。インストールされていません」。 pipをアンインストールしたり、pipキャッシュを削除したり、ハードドライブからパッケージを検索したりしてみました。

"pip show"は最終的に私を解決策に導きました、 "Location:"はディレクトリを指していました、そしてそのディレクトリの名前を変更してパッケージをpipのリストから削除しました。ディレクトリの名前を変更してもpipのリストには表示されず、virtualenvでパッケージを再インストールできます。

0
mmacvicar

私はPyCharmでpython setup.py installを一度実行しました、それは私のcondaベース環境にすべてのパッケージをインストールします。後でこれらすべてのパッケージを削除したいときに、pip uninstallが機能しません。私は手動で/anaconda3/lib/python3.7/site-packagesからそれらを削除しなければなりませんでした:(

だから、彼らがrequirements.txtファイルを書く代わりにsetup.pyを使う理由はわかりません。要件ファイルは仮想環境にパッケージをインストールするために使うことができ、システムのpythonパッケージをめちゃくちゃにしません。

0
Yossarian42

次のように、bashを使用してコマンドを読み取ることで関連ファイルを削除することをお勧めします。

Sudo python setup.py install --record files.txt
Sudo bash -c "cat files.txt | xargs rm -rf"
0
Mark Peng