Нет модуля с именем pip.req
Я устанавливаю tweepy, но у меня ошибка в pip.req. У меня установлен протокол, но по какой-то причине 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
Ответы
Ответ 1
Похоже, что это сработает, если бы у вас был этот код:
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("#")]
Сделайте это:
Ответ 2
Это происходит в последнее время из-за изменения в пипс 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
Это должно сделать это.
Ответ 3
Я опустился до уровня 9.0.3, и у меня все заработало. Команда для понижения пипса
python -m pip install pip==9.0.3
Ответ 4
Вместо того, чтобы импортировать функцию и, возможно, столкнуться со многими проблемами, замените содержимое 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
У меня была очень похожая проблема с 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
Ответ 6
Я столкнулся с той же проблемой, что и у вас. Чтобы установить pip, вам нужно следовать этому https://pypi.python.org/pypi/setuptools после того, как вы получите easy_install. Сначала я установил pip, а затем запустил следующую команду.
sudo easy_install pip
sudo python setup.py install
легко.