programing

pip.req라는 모듈이 없습니다.

yoursource 2021. 1. 16. 10:51
반응형

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

이 코드가 있으면 작동하는 것처럼 보입니다.

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


이것은 최근 핍 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

그렇게해야합니다.


나는 pip를 9.0.3으로 다운 그레이드했고 일이 나를 위해 일했습니다. pip 다운 그레이드 명령은 다음과 같습니다.

python -m pip install pip==9.0.3

함수를 가져오고 잠재적으로 더 많은 문제가 발생할 수있는 대신 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="tweepy@googlegroups.com",
      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 호출에서 세션 인수가 제거되었습니다.


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

나는 당신이 가진 동일한 문제에 직면했습니다. pip를 설치하려면이 https://pypi.python.org/pypi/setuptools 를 따라야 합니다. easy_install을 받으면 먼저 pip를 설치 한 후 다음 명령을 실행합니다.

sudo easy_install pip
sudo python setup.py install

쉬운.

참조 URL : https://stackoverflow.com/questions/25192794/no-module-named-pip-req

반응형