没有名为 pip.req 的模块

我正在安装 weepy,但是遇到了关于 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
77123 次浏览

看起来如果你有这个代码就可以了:

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

我遇到了和你一样的问题。要安装 pip,你需要遵循这个 https://pypi.python.org/pypi/setuptools一旦你得到 easy _ install 我先安装 pip,然后运行以下命令。

sudo easy_install pip
sudo python setup.py install

放松。

将 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 _ demand 调用中删除。

最近发生这种情况是因为 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

应该可以了。

我降级到 pip 为9.0.3,一切都很顺利。 降级 pip 的命令是

python -m pip install pip==9.0.3

我在 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