J'installe tweepy, mais je rencontre une erreur à propos de pip.req. J'ai installé pip, mais pour une raison quelconque, pip.req est toujours introuvable. J'ai effectué de nombreuses recherches en ligne et le plus que je puisse trouver était un problème d'incompatibilités entre zapo (?) Et python 2.7, qui causait la même erreur pour un autre utilisateur. La discussion n'était pas claire sur la pour résoudre le problème, cependant. Merci!
$ 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
Il semble que cela fonctionnerait si vous aviez ce code:
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("#")]
Faire ceci:
pip/
pip/__init__.py
pip/req.py
pip/req.py
:modifier la ligne dans setup.py
reqs = install_reqs
Cela se produit récemment en raison d'un changement de pip 10.
La solution est assez facile. Vous avez probablement quelque chose comme:
from pip.req import parse_requirements
Changez cela en quelque chose comme:
try: # for pip >= 10
from pip._internal.req import parse_requirements
except ImportError: # for pip <= 9.0.3
from pip.req import parse_requirements
Ça devrait le faire.
J'ai rétrogradé pour passer à 9.0.3 et tout a fonctionné pour moi. La commande pour le déclassement de pip est
python -m pip install pip==9.0.3
Au lieu d'importer la fonction et de rencontrer potentiellement plus de problèmes, remplacez le contenu du fichier setup.py par ce qui suit:
#!/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)
Notez que l'argument de session a été supprimé de l'appel parse_requirements.
J'ai eu un problème très similaire avec 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'
La solution consistait à mettre à niveau pip-tools de 1.10 à 2.0:
pip install -U pip-tools
J'ai rencontré le même problème que vous avez. Pour installer pip, vous devez suivre ceci https://pypi.python.org/pypi/setuptools une fois que vous avez easy_install, j'ai d'abord installé pip, puis exécutez la commande suivante.
Sudo easy_install pip
Sudo python setup.py install
facile.