2017-01-24 7 views
8

Ubuntu 14.04.5 LTSの使用。 sudo pip3 install line_profilerでline_profilerをインストールしようとした、と私はsudo pip3を実行したときに、今、私は次のような出力が得られます。私は今、Djangoアプリケーションを実行しようとすると、line_profilerをインストールした後でpipが正しく表示されるように修正するには?

Traceback (most recent call last): 
    File "/usr/bin/pip3", line 5, in <module> 
    from pkg_resources import load_entry_point 
    File "/usr/local/lib/python3.4/dist-packages/pkg_resources/__init__.py", line 72, in <module> 
    import packaging.requirements 
    File "/usr/local/lib/python3.4/dist-packages/packaging/requirements.py", line 59, in <module> 
    MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker") 
TypeError: __call__() missing 1 required positional argument: 'name' 

は、同様のエラーを取得しますので、私は多くのものが混乱していると思いますアップ。

誰が何が間違っていたか、修正する方法を知っていますか?

+0

これは何が原因だろうか分かりませんが、ローカルインストールされたパッケージを '/ usr/local/lib/python3.4/dist-packages'から削除する方法があります。そしてさらに試みる。 –

+0

私は通常、Linuxディストリビューションに 'sudo pip'や' sudo pip3'を使ってインストールしないことをお勧めします。 Linuxディストリビューションの利点は、ディストリビューションパッケージマネージャ(UbuntuのAPT)がソフトウェアとアップデートを管理していることです。sudo pip(またはsudo make installなど)を起動すると、あなた自身。代わりに、私はディストリビューションで提供されたPythonパッケージを使うか、virtualenvを使って必要なものをインストールすることをお勧めします。そうすれば、virtualenvが乱れてしまった場合、それを無効にして削除してからやり直すのは簡単です。 –

答えて

15

私はちょうどカップルのパッケージをインストールした後、比較的新鮮なUbuntu 14.04設定で同じエラーが発生しました。私はバグのコードがリポジトリにプッシュされていると推測しています。例外の根本原因で

ルック:

File "/usr/local/lib/python3.4/dist-packages/packaging/requirements.py", line 59, in <module> 
    MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker") 
TypeError: __call__() missing 1 required positional argument: 'name' 

問題はMARKER_EXPR()呼び出しは「名前」の引数を持つべきであるということですが、それはしていません。私の修正はrequirements.pyファイルにMARKER_EXPR("")が含まれるように編集することでした。これは私のためにそれを解決しました。

+1

この男は生まれ変わったイエスです。できます。最後に。 – DeadlyBacon

+2

これも私のために修正しました。単にMARKER_EXPR = originalTextFor(MARKER_EXPR()(マーカー))を 'MARKER_EXPR = originalTextFor(MARKER_EXPR(" "))("マーカー ")に変更してください。 –

5

これは自分自身で発生し、パッケージングのバグとして報告されましたが、メンテナーexplainedはこれが古いバージョンのpyparsingによるものであることを報告しました。 pyparsing> = 2.0.2にアップグレードするとエラーが修正されます。

+0

そしてどうやって更新しましたか?壊れたピペットでpyparsing? –

+0

[pyparsing sources](http://pyparsing.wikispaces.com/Download+and+Installation)をダウンロードし、 'src'ディレクトリに移動して' python setup.py install'を実行します –

+2

DIdは私のために修正しません – paullb

0

ちょうどsudo pip uninstall pyparsing、その後sudo pip install pyparsing、すべてのことがOKです。

+0

エラーはピップ自体から来るので、pipはアンストールに使用できません... – paullb

+0

私はこのエラーをUbuntu Trustyの 'update-manager'から得ていました。私は 'sudo -H pip3 install pyparsing --upgrade'を実行して、TypeErrorを投げなかった新しいバージョンを手に入れることができました。 –

0

受け入れられた回答が私のために働いた。しかし、別の答えで指摘されているように、pyparsingは更新が必要でした。 requirements.pyに引用符を追加した後、私はpyparsingをアップグレードすることができました。私はその後私の編集を削除し、ピップは正常に機能し続けました。

0

同様の問題(line-profiler broke pip)でも、different errorです。いくつかのローカルにインストールされたパッケージを削除(OSが提供するデフォルトにフォールバック)して、更新することによって、

解決(ジョシュさんのコメントに感謝):

sudo rm -rf /usr/local/lib/python3.4/dist-packages/setuptools* 
sudo rm -rf /usr/local/lib/python3.4/dist-packages/pkg_resources 
sudo pip3 install --upgrade pip 

警告:このコマンドは確認せずにファイルを削除します。 YMMVので、最初にそれらのファイルをバックアップします。

関連する問題