web-dev-qa-db-ja.com

pipはAttributeErrorで失敗します: 'module'オブジェクトには属性 'wraps'がありません

私はFedoraにいます。最近、システムをF20からF21にアップグレードしました。 PipはF20で正常に機能していましたが、F21へのアップグレード後に何か問題が発生したに違いありません。 Pipは動作を停止しました。コマンドpip <anything>を入力するたびに、以下のエラーが発生します。

Traceback (most recent call last):
  File "/usr/bin/pip", line 7, in <module>
    from pip import main
  File "/usr/lib/python2.7/site-packages/pip/__init__.py", line 12, in <module>
    from pip.commands import commands, get_summaries, get_similar_commands
  File "/usr/lib/python2.7/site-packages/pip/commands/__init__.py", line 6, in <module>
    from pip.commands.bundle import BundleCommand
  File "/usr/lib/python2.7/site-packages/pip/commands/bundle.py", line 6, in <module>
    from pip.commands.install import InstallCommand
  File "/usr/lib/python2.7/site-packages/pip/commands/install.py", line 5, in <module>
    from pip.req import InstallRequirement, RequirementSet, parse_requirements
  File "/usr/lib/python2.7/site-packages/pip/req/__init__.py", line 3, in <module>
    from .req_install import InstallRequirement
  File "/usr/lib/python2.7/site-packages/pip/req/req_install.py", line 31, in <module>
    from pip.utils import (
  File "/usr/lib/python2.7/site-packages/pip/utils/__init__.py", line 59, in <module>
    def rmtree(dir, ignore_errors=False):
  File "/usr/lib/python2.7/site-packages/pip/_vendor/retrying.py", line 47, in wrap
    @six.wraps(f)
AttributeError: 'module' object has no attribute 'wraps'
20
Theja

すべての解決策を試した後、私はグーグルで結果を見ることができませんでした。私は少し危険を冒してプレイしようとしました。これは最も安全なソリューションではないかもしれませんが、私にとってはうまくいきました。 python get-pip.py をもたらしました:

Requirement already up-to-date: pip in /usr/lib/python2.7/site-packages

pipがアンインストールされていたとしても。 /usr/lib/python2.7/site-packages/を使用して、2つのpipディレクトリを検索します。pipおよびpip-6.0.8.dist-info。すぐに両方を削除しました。その後、python get-pip.pyもう一度。出来上がり!出来た。

14
Theja

activestate pythonフレッシュインストールでWindowsで私に起こった私はちょうどpipをダウングレードするeasy_installを使用しました

easy_install pip==7.1.2

そしてそれは働いていた....

7
Fruch

Easy_installを使用して、以前のバージョンのpipをインストールします

easy_install pip==7.0.2

次に、pipを使用して、ダウンしたバージョンをインストールします。私の場合は9.0.1でした

pip install pip==9.0.1
7
Devin Clark

recreate異なるpip-versionを含む仮想envを使用すると、このようなシナリオを実行できます。

# virtualenv /tmp/env
New python executable in /tmp/env/bin/python
Installing setuptools, pip...done.

# /tmp/env/bin/pip install --upgrade pip
(...)
Found existing installation: pip 1.5.6
  Uninstalling pip:
    Successfully uninstalled pip
Successfully installed pip

# virtualenv /tmp/env
New python executable in /tmp/env/bin/python
Installing setuptools, pip...done.

# /tmp/env/bin/pip install --upgrade pip
(...)
AttributeError: 'module' object has no attribute 'wraps'

環境には、以前のインストールからのpipフラグメントが含まれています。これを修正するには、-cleanオプションを使用できます:

# virtualenv --clear /tmp/env
Deleting tree /tmp/env/lib/python2.7
Not deleting /tmp/env/bin
New python executable in /tmp/env/bin/python
Installing setuptools, pip...done.

その後、virtualenvは新しい環境をインストールする前にパスを消去します。

更新動作が必要な場合、(たとえば)bin/python)が存在する場合、virtualenvをスキップできます。

# [ ! -x /tmp/env/bin/python ] && virtualenv /tmp/env
4
Proddi

これは、virtualenvディレクトリを(プロジェクトとともに)新しい場所に移動した後の状況で発生しました(マニュアルを読むと)ハードコーディングされたパスが含まれているとマニュアルに明確に記載されているため、私は明らかにすべきではありませんでした環境で。

Bin /、include /、lib /、lib64 /ディレクトリを削除してから、virtualenvを再作成すると、問題が解決しました。

私は環境内のフルパスを検索して修正することを検討しましたが、どこでも(bin/activate *ファイル内で)修正するのは簡単なことではありませんでした。

1

私はMac OSを使用していますが、mkvirtualenv --system-site-packages XXXX とは対照的に mkvirtualenv XXXX

ランニング pip install -r requirements.txt仮想環境でAttributeError: 'module' object has no attribute 'wraps'前にあり、もうありません。

0
Yuriy R