No module named pip.req

PythonPipTweepy

Python Problem Overview


I am installing tweepy, but I am running into an error about pip.req. I have pip installed, but for some reason pip.req still can't be found. I did a bunch of research online and the most I could find was some issue about incompatibilities between zapo (?) and python 2.7 causing the same error for some other user. The discussion was unclear about how to solve the problem, though. Thanks!

$ 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

Python Solutions


Solution 1 - Python

This is happening lately because of a change in pip 10.

The fix is pretty easy. You probably have something like:

from pip.req import parse_requirements

Change that to something like:

try: # for pip >= 10
    from pip._internal.req import parse_requirements
except ImportError: # for pip <= 9.0.3
    from pip.req import parse_requirements

That should do it.

Solution 2 - Python

I downgraded to pip to 9.0.3 and things worked for me. Command for downgrading pip is

python -m pip install pip==9.0.3

Solution 3 - Python

It looks like it would work if you had this 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("#")]

Do this:

  1. create a directory pip/

  2. add an empty file pip/__init__.py

  3. add a file pip/req.py

  4. put the code above into pip/req.py:

  5. modify the line in setup.py

    reqs = install_reqs

Solution 4 - Python

Instead of importing the function and potentially encountering more issues replace the contents of the setup.py with the following:

#!/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)

Notice the session argument has been removed from the parse_requirements call.

Solution 5 - Python

I had a very similar problem with 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'

The solution was to upgrade pip-tools from 1.10 to 2.0:

pip install -U pip-tools

Solution 6 - Python

I ran into same problem you have. To install pip you need to follow this https://pypi.python.org/pypi/setuptools once you get easy_install I installed pip first and then run the following command.

sudo easy_install pip
sudo python setup.py install

easy.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser3796109View Question on Stackoverflow
Solution 1 - PythonmlissnerView Answer on Stackoverflow
Solution 2 - PythonskvpView Answer on Stackoverflow
Solution 3 - PythonhughdbrownView Answer on Stackoverflow
Solution 4 - PythonMatthew FrostView Answer on Stackoverflow
Solution 5 - PythonhdiogenesView Answer on Stackoverflow
Solution 6 - PythonBedi EgilmezView Answer on Stackoverflow