web-dev-qa-db-ja.com

pip.reqというモジュールはありません

Tweepyをインストールしていますが、pip.reqに関するエラーが発生しています。 pipをインストールしましたが、何らかの理由でpip.reqがまだ見つかりません。私はオンラインでたくさんの研究をしましたが、私が見つけた最大の問題は、zapo(?)とpython 2.7との非互換性に関する問題で、他のユーザーにも同じエラーが発生しました。しかし、問題を解決するために。ありがとう!

$ python2 setup.py install
Traceback (most recent call last):
  File "setup.py", line 5, in <module>
    from pip.req import parse_requirements
ImportError: No module named pip.req
51
user3796109

このコードがあればうまくいくようです:

def parse_requirements(filename):
    """ load requirements from a pip requirements file """
    lineiter = (line.strip() for line in open(filename))
    return [line for line in lineiter if line and not line.startswith("#")]

これを行う:

  1. ディレクトリを作成しますpip/
  2. 空のファイルを追加pip/__init__.py
  3. ファイルを追加pip/req.py
  4. 上記のコードをpip/req.pyに入れます:
  5. setup.pyの行を変更します

    reqs = install_reqs

18
hughdbrown

これは、pip 10の変更により最近発生しています。

修正は非常に簡単です。あなたはおそらく次のようなものを持っています:

from pip.req import parse_requirements

次のようなものに変更します。

try: # for pip >= 10
    from pip._internal.req import parse_requirements
except ImportError: # for pip <= 9.0.3
    from pip.req import parse_requirements

それはそれを行う必要があります。

127
mlissner

私は9.0.3にピップするためにダウングレードし、物事は私のために働いた。 pipをダウングレードするためのコマンドは

python -m pip install pip==9.0.3
31
skvp

関数をインポートして問題が発生する可能性がある代わりに、setup.pyの内容を次のものに置き換えます。

#!/usr/bin/env python
#from distutils.core import setup
import re, uuid
from setuptools import setup, find_packages

def parse_requirements(filename):
    """ load requirements from a pip requirements file """
    lineiter = (line.strip() for line in open(filename))
    return [line for line in lineiter if line and not line.startswith("#")]


VERSIONFILE = "tweepy/__init__.py"
ver_file = open(VERSIONFILE, "rt").read()
VSRE = r"^__version__ = ['\"]([^'\"]*)['\"]"
mo = re.search(VSRE, ver_file, re.M)

if mo:
    version = mo.group(1)
else:
    raise RuntimeError("Unable to find version string in %s." % (VERSIONFILE,))

install_reqs = parse_requirements('requirements.txt')
reqs = install_reqs

setup(name="tweepy",
      version=version,
      description="Twitter library for python",
      license="MIT",
      author="Joshua Roesslein",
      author_email="[email protected]",
      url="http://github.com/tweepy/tweepy",
      packages=find_packages(exclude=['tests']),
      install_requires=reqs,
      keywords="Twitter library",
      classifiers=[
          'Development Status :: 4 - Beta',
          'Topic :: Software Development :: Libraries',
          'License :: OSI Approved :: MIT License',
          'Operating System :: OS Independent',
          'Programming Language :: Python',
          'Programming Language :: Python :: 2',
          'Programming Language :: Python :: 2.6',
          'Programming Language :: Python :: 2.7',
          'Programming Language :: Python :: 3',
          'Programming Language :: Python :: 3.3',
          'Programming Language :: Python :: 3.4',
      ],
      Zip_safe=True)

セッション引数がparse_requirements呼び出しから削除されていることに注意してください。

5
Matthew Frost

Python 3.7 + pip 18.0:

Traceback (most recent call last):
  File "/usr/local/bin/pip-compile", line 7, in <module>
    from piptools.scripts.compile import cli
  File "/usr/local/lib/python3.7/site-packages/piptools/scripts/compile.py", line 11, in <module>
    from pip.req import InstallRequirement, parse_requirements
ModuleNotFoundError: No module named 'pip.req'

解決策は、pip-toolsを1.10から2.0にアップグレードすることでした。

pip install -U pip-tools
4
hdiogenes

私はあなたと同じ問題に遭遇しました。 pipをインストールするには、これに従う必要があります https://pypi.python.org/pypi/setuptools easy_installを取得したら、最初にpipをインストールしてから、次のコマンドを実行します。

Sudo easy_install pip
Sudo python setup.py install

簡単です。

2
Bedi Egilmez