Bug 1416577

Summary: python2-pip crashes with pyparsing error
Product: [Fedora] Fedora EPEL Reporter: Kamran Riaz Khan <krkhan>
Component: python-pipAssignee: Tomas Orsava <torsava>
Status: CLOSED WORKSFORME QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: epel7CC: bkabrda, donald, metherid, ncoghlan, orion, TicoTimo, torsava
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-01-26 00:58:23 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Kamran Riaz Khan 2017-01-25 21:34:28 UTC
Description of problem:
python2-pip is unusable, all pip commands crash with the following exception:

# pip install pudb
Traceback (most recent call last):
  File "/usr/bin/pip", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 72, in <module>
    import packaging.requirements
  File "/usr/lib/python2.7/site-packages/packaging/requirements.py", line 59, in <module>
    MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker")
TypeError: __call__() takes exactly 2 arguments (1 given)

Version-Release number of selected component (if applicable):

# yum info {pyparsing,python2-pip}
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.xmission.com
 * epel: mirror.cogentco.com
 * extras: mirrors.xmission.com
 * updates: mirrors.xmission.com
Installed Packages
Name : pyparsing
Arch : noarch
Version : 1.5.6
Release : 9.el7
Size : 367 k
Repo : installed
From repo : base
Summary : An object-oriented approach to text processing
URL : http://pyparsing.wikispaces.com/
License : MIT
Description : pyparsing is a module that can be used to easily and directly configure syntax
            : definitions for any number of text parsing applications.

Name : python2-pip
Arch : noarch
Version : 8.1.2
Release : 5.el7
Size : 7.2 M
Repo : installed
From repo : epel
Summary : A tool for installing and managing Python 2 packages
URL : http://www.pip-installer.org
License : MIT
Description : Pip is a replacement for `easy_install
            : <http://peak.telecommunity.com/DevCenter/EasyInstall>`_. It uses mostly the
            : same techniques for finding packages, so packages that were made
            : easy_installable should be pip-installable as well.

How reproducible:
Use pip to install any package.

Steps to Reproduce:
1. Install python2-pip
2. Try to use pip for installing any package

Actual results:
Pip crashes with an unhandled exception, when calling originalTextFor() from pyparsing.

Expected results:
Package gets installed.

Additional info:
Manually installing pyparsing-2.0.3-1 RPM fixes the issue:

# yum install ftp://mirror.switch.ch/pool/4/mirror/centos/7.3.1611/cloud/x86_64/openstack-kilo/common/pyparsing-2.0.3-1.el7.noarch.rpm

# pip install docutils
Collecting docutils
  Downloading docutils-0.13.1-py2-none-any.whl (537kB)
    100% |████████████████████████████████| 542kB 1.5MB/s 
Installing collected packages: docutils
Successfully installed docutils-0.13.1
You are using pip version 8.1.2, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Comment 1 Orion Poplawski 2017-01-25 23:22:35 UTC
I suspect something is corrupted on your system, which is pretty easy to do when installing things as root via pip.  What's the output of:

rpm -Va python\*

Comment 2 Kamran Riaz Khan 2017-01-26 00:57:24 UTC
Yes something was corrupted on the system. I reinstalled from scratch on a new machine and the same package numbers work. I suspect some pip command had corrupted the system. Thanks, closing the bug.