35

バックグラウンド

私は(基本的に)「誰が誰をフォローしているか」のグラフを分析するための学術プロジェクトに取り組んでおり、いくつかのアイデアをテストするために、Python Twitter APIパッケージの1つを使用してTwitterから実際のデータを(いくつかの小さなデータセットを構築することによって)取得したいと考えていました。私は持っている。

私は少し不注意で、2 つのパッケージをインストールしました。

a) python-twitter0.8.2( http://pypi.python.org/pypi/python-twitter/0.8.2 )

b) twitter1.9.1( http://pypi.python.org/pypi/twitter/1.9.1 )

(a) はpython-twitterpypi で呼び出され、(b) は と呼ばれるtwitterので、そのように参照します。

これらは両方ともimport twitterPython インタープリターで呼び出されますが、その行を書くときは常に 1 つを取得しますtwitter(1 つを使用する方法を理解できればpython-twitter、先に進むことができますが、基になるものは同じままです)問題)。


問題

パッケージは必要ないので、twitterpip でアンインストールすることにしました。

$ sudo pip uninstall twitter

出力は次のとおりです。

Uninstalling twitter:
Proceed (y/n)? y
  Successfully uninstalled twitter

(実際、私も同じことを試してみましたpython-twitterが、同様の応答が得られました)。

ただし、 を実行するpip freezeと、これらのパッケージの両方がインストール済みリストに表示されます! 実際、import twitterインタープリターでコマンドを正常に使用できます。明らかに、パッケージはアンインストールされていません。私が知りたいのは、それらをアンインストールする方法です!


他の情報

Python 2.7 と Ubuntu 12.04 を使用しています

シェル インタープリターの代わりに IDLE を実行しているときに と入力するhelp('modules')と、どちらtwitterpython-twitterリストに表示されません。help('modules')シェル インタープリターに入力すると、セグメンテーション違反エラーが発生し、インタープリターがクラッシュします。エラーは次のとおりです。

>>> help('modules')

Please wait a moment while I gather a list of all available modules...

/usr/lib/python2.7/dist-packages/gobject/constants.py:24: Warning:
  g_boxed_type_register_static: assertion `g_type_from_name (name) == 0' failed
  import gobject._gobject
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:40: Warning:
  g_boxed_type_register_static: assertion `g_type_from_name (name) == 0' failed
  from gtk import _gtk

** (python:2484): CRITICAL **: pyg_register_boxed: assertion `boxed_type != 0' failed
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:40: Warning: cannot register
existing type `GdkDevice'
  from gtk import _gtk
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:40: Warning: g_type_get_qdata: 
assertion `node != NULL' failed
  from gtk import _gtk
Segmentation fault (core dumped)

他の質問でこれが解決されない理由:

pip freeze lists uninstalled packagesで同様の投稿を見ましたが、同じ問題は発生していません。

$ sudo which pip
/usr/bin/pip
$ which pip
/usr/bin/pip

これは同じ出力です。さらに、$ sudo pip freezeと同じ出力が得られ$ pip freezeます。

どんな助けでも大歓迎です!

4

5 に答える 5

57

パッケージはいつでも手動で削除できます。実行できます:

sudo rm -rf /usr/local/lib/python2.7/dist-packages/twitter

ディレクトリからそのパッケージを削除しますdist-packageseasy-install.pth同じディレクトリ内のファイルを編集し、twitterそこからエントリを削除する必要がある場合があります。

于 2013-01-28T23:04:56.160 に答える
15

Martin の解決策は機能しますが、回避策としては、直接的な答えは得られません。Ubuntu バージョン (12.04) の Ubuntu の pip バージョンは次のとおりです。

 python-pip (1.0-1build1)

これは、Debian Wheezy の同じバージョンでもあります。このバージョンには奇妙なバグがあり、パッケージが削除されません。
スクリプトget-pip.pyを使用してアップストリームから pip を取得すると、パッケージを削除できる固定バージョンの pip が得られます (現時点では v. 1.5.6)。

アップデート

Python の pip は、本当に動きの速いターゲットです。したがって、Debian または Ubuntu の pip を使用すると、バグが発生することが保証されます。 これらのディストリビューションは使用しないでくださいpip。代わりに、アップストリームから pip をインストールします。

pip インストール済みパッケージをシステム パッケージとして登録する場合は、stdebも使用することを強くお勧めします。

于 2014-11-17T09:20:16.457 に答える
2

私にとって、それは私が走っていたという事実によるものでpip freezesudo pip freeze.

を使用しsudoてアンインストールしていたため、「非sudo」セッションではアンインストールされませんでした。sudoそれを修正せずにアンインストールします。

于 2015-10-09T10:19:18.543 に答える