Python 没有名为pip.req的模块
我正在安装tweepy,但是我遇到了一个关于pip.req的错误。我已经安装了pip,但由于某些原因仍然找不到pip.req。我在网上做了一系列的研究,我能找到的最多的是zapo(?)和Python2.7之间的不兼容问题,这给其他用户造成了同样的错误。不过,关于如何解决这个问题的讨论并不清楚。谢谢Python 没有名为pip.req的模块,python,pip,tweepy,Python,Pip,Tweepy,我正在安装tweepy,但是我遇到了一个关于pip.req的错误。我已经安装了pip,但由于某些原因仍然找不到pip.req。我在网上做了一系列的研究,我能找到的最多的是zapo(?)和Python2.7之间的不兼容问题,这给其他用户造成了同样的错误。不过,关于如何解决这个问题的讨论并不清楚。谢谢 $ python2 setup.py install Traceback (most recent call last): File "setup.py", line 5, in <modu
$ 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
$python2 setup.py安装
回溯(最近一次呼叫最后一次):
文件“setup.py”,第5行,在
从pip.req导入解析需求
ImportError:没有名为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("#")]
这样做:
pip/
pip/\uuuu init\uuuu.py
pip/req.py
pip/req.py
:setup.py中的行
要求=安装要求
我遇到了和你一样的问题。要安装pip,您需要在获得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_requirements调用中删除。由于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
将其更改为:
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
try:#对于pip>=10
从pip.\u internal.req导入解析\u需求
除了importorror:#对于pip来说,我把pip降到了9.0.3,一切都对我有利。
降级pip的命令为
python -m pip install pip==9.0.3
我在Python3.7+PIP18.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'
^谢谢!所以我能理解-为什么?为什么我必须自己添加这段代码以及上面的代码做什么?tweepy的作者编写了一个setup.py
脚本,它引用了不存在的文件和目录。我告诉你作者可能的意思。(很有可能,这些文件在他的硬盘上,但没有添加到git repo中。这种情况经常发生。)此代码读取一个piprequirements.txt
文件并提取需要安装的模块。然后setup.py
实际安装文件。@hughdbrown我应该修改哪一行,修改什么?@AliIssa我建议将函数放在setup.py文件中,而不是导入它。请参阅下面我的解决方案。在setup.py
文件中的reqs=install_reqs
行的添加位置并不完全清楚,因此我也遇到了同样的问题。为什么他们不添加向后兼容性。许多软件包安装失败,并出现此错误:(似乎他们很后悔这是可用的,因为他们把它移到了\u internals
的私有名称空间。但是,是的,把它拿走并不好。@kororo,我想你读的是“2016年4月”而不是2018年4月16日(本年度)。pip开发人员从来没有打算出售API,只是想成为一个工具。由于人数少得惊人,他们没有太多的时间和精力来制定一个惊人的过渡计划。让我大吃一惊的是,庞大的Python社区对这一小群pip开发人员所做的事情贡献如此之少。看起来他们想删除它。我不知道我很同意这个决定,但这里是从pip 10中删除该模块的PR。谢谢。很遗憾pip降级了,但这是唯一对我有效的事情。我今天在pip工具上也遇到了同样的问题(alôHumberto!)。_internal.req import parse\u requirements