pypa / setuptools

Official project repository for the Setuptools build system
https://pypi.org/project/setuptools/
MIT License
2.52k stars 1.19k forks source link

packaging 16.4 does not allow whitepace between requirement version conditions #502

Closed ghost closed 8 years ago

ghost commented 8 years ago

Originally reported by: drcraig72 (Bitbucket: drcraig72, GitHub: Unknown)


Found in the release of setuptools 20.2.1, which vendors in packaging 16.4. It appears that packaging.requirements.Requirement does not comply with PEP-440's "Whitespace between a conditional operator and the following version identifier is optional, as is the whitespace around the commas.", per https://www.python.org/dev/peps/pep-0440/#version-specifiers. Instead, it fails when there is whitespace.

>>> from pkg_resources.extern.packaging.requirements import Requirement
>>> Requirement('Jinja2 >=2.7, <3')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/tmp/v/local/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/requirements.py", line 94, in __init__
    requirement_string[e.loc:e.loc + 8]))
pkg_resources._vendor.packaging.requirements.InvalidRequirement: Invalid requirement, parse error at "'<3'"

But it succeeds when the whitespace is removed

>>> Requirement('Jinja2 >=2.7,<3')
<Requirement('Jinja2<3,>=2.7')>

Opened the same ticket on packaging at https://github.com/pypa/packaging/issues/65


ghost commented 8 years ago

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


This new issue was first reported in #503.

ghost commented 8 years ago

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


Installing the latest iPython seems not to be subject to the error. Also, installing 3.2.3 with --no-use-wheel bypasses the issue, because it installs the package as an egg with this indication:

vagrant@vagrant-ubuntu-trusty-64:~$ kenv/bin/pip install --no-use-wheel ipython==3.2.3
DEPRECATION: --no-use-wheel is deprecated and will be removed in the future.  Please use --no-binary :all: instead.
Collecting ipython==3.2.3
  Downloading ipython-3.2.3.tar.gz (10.9MB)
    100% |████████████████████████████████| 10.9MB 146kB/s 
Skipping bdist_wheel for ipython, due to binaries being disabled for it.
Installing collected packages: ipython
  Running setup.py install for ipython ... done
Successfully installed ipython-3.2.3

Furthermore, when I download and unzip the wheel, it also seems to have these strange syntaxes in the wheel metadata. I suspect the issue is with the packaging of iPython wheels (and probably other packages wheels).

vagrant@vagrant-ubuntu-trusty-64:~/issue502$ ~/kenv/bin/pip download -v --no-cache-dir ipython==3.2.3
Collecting ipython==3.2.3
  1 location(s) to search for versions of ipython:
  * https://pypi.python.org/simple/ipython/
  Getting page https://pypi.python.org/simple/ipython/
  Starting new HTTPS connection (1): pypi.python.org
  "GET /simple/ipython/ HTTP/1.1" 200 4198
  Analyzing links from page https://pypi.python.org/simple/ipython/
    Skipping link https://pypi.python.org/packages/2.5/i/ipython/ipython-0.10-py2.5.egg#md5=2ba94f7095f19af07ce2b4de8a7560d8 (from https://pypi.python.org/simple/ipython/); unsupported archive format: .egg
    Skipping link https://pypi.python.org/packages/2.5/i/ipython/ipython-0.10-py25.noarch.rpm#md5=2d7dc5f7c03b795d4469d6683c5746f6 (from https://pypi.python.org/simple/ipython/); unsupported archive format: .rpm
    Skipping link https://pypi.python.org/packages/2.5/i/ipython/ipython-0.7.3-py2.5.egg#md5=76df2f3f9dcd0a4f087c558c9a6f94a4 (from https://pypi.python.org/simple/ipython/); unsupported archive format: .egg
    Skipping link https://pypi.python.org/packages/2.6/i/ipython/ipython-0.10-py2.6.egg#md5=106db488676e0a5f213e228ce97371ff (from https://pypi.python.org/simple/ipython/); unsupported archive format: .egg
    Skipping link https://pypi.python.org/packages/2.6/i/ipython/ipython-0.10-py26.noarch.rpm#md5=dc900a183e7034b720b62045202f4e9e (from https://pypi.python.org/simple/ipython/); unsupported archive format: .rpm
    Skipping link https://pypi.python.org/packages/2.6/i/ipython/ipython-0.10.win32-setup.exe#md5=b45f7a84851f17ce97a8dcc366250afe (from https://pypi.python.org/simple/ipython/); unsupported archive format: .exe
    Skipping link https://pypi.python.org/packages/2.6/i/ipython/ipython-0.12.1-py2.6.egg#md5=81704b5d76a095575cae2c66fda3daaa (from https://pypi.python.org/simple/ipython/); unsupported archive format: .egg
    Skipping link https://pypi.python.org/packages/2.7/i/ipython/ipython-0.12.1-py2.7.egg#md5=cf9645e30bed6ba0629fa3c610af7a5b (from https://pypi.python.org/simple/ipython/); unsupported archive format: .egg
    Skipping link https://pypi.python.org/packages/2.7/i/ipython/ipython-0.13-py2.7.egg#md5=694ce5981bf163922bd09617a4742a61 (from https://pypi.python.org/simple/ipython/); unsupported archive format: .egg
    Skipping link https://pypi.python.org/packages/2.7/i/ipython/ipython-0.13.1-py2.7.egg#md5=d4bbe64ccefaf9c46536ab94b846db6f (from https://pypi.python.org/simple/ipython/); unsupported archive format: .egg
    Skipping link https://pypi.python.org/packages/2.7/i/ipython/ipython-2.0.0-py27-none-any.whl#md5=6122692edc6fb0150e0369fa38b25e7a (from https://pypi.python.org/simple/ipython/); it is not compatible with this Python
    Skipping link https://pypi.python.org/packages/2.7/i/ipython/ipython-2.1.0-py2-none-any.whl#md5=377fa807db47b7d273e4acacf8091688 (from https://pypi.python.org/simple/ipython/); it is not compatible with this Python
    Skipping link https://pypi.python.org/packages/2.7/i/ipython/ipython-2.2.0-py27-none-any.whl#md5=1503523a69baec078487d862c3d9415b (from https://pypi.python.org/simple/ipython/); it is not compatible with this Python
    Skipping link https://pypi.python.org/packages/2.7/i/ipython/ipython-2.3.0-py27-none-any.whl#md5=35650a773252913e9fe184d208e6b9fb (from https://pypi.python.org/simple/ipython/); it is not compatible with this Python
    Skipping link https://pypi.python.org/packages/2.7/i/ipython/ipython-2.3.1-py27-none-any.whl#md5=14b9c7c5280ded28777559c434947573 (from https://pypi.python.org/simple/ipython/); it is not compatible with this Python
    Skipping link https://pypi.python.org/packages/2.7/i/ipython/ipython-2.4.0-py2-none-any.whl#md5=afb24ced30860ba8fe8d332255578de1 (from https://pypi.python.org/simple/ipython/); it is not compatible with this Python
    Skipping link https://pypi.python.org/packages/2.7/i/ipython/ipython-2.4.1-py27-none-any.whl#md5=622b830b2e9f94144daf6cec8f255a70 (from https://pypi.python.org/simple/ipython/); it is not compatible with this Python
    Skipping link https://pypi.python.org/packages/2.7/i/ipython/ipython-3.0.0-py2-none-any.whl#md5=e241d0c4faf07ba4161f41a1e656a1b6 (from https://pypi.python.org/simple/ipython/); it is not compatible with this Python
    Skipping link https://pypi.python.org/packages/2.7/i/ipython/ipython-3.1.0-py2-none-any.whl#md5=c9fb71b20ca7223649a57a4b965588a5 (from https://pypi.python.org/simple/ipython/); it is not compatible with this Python
    Skipping link https://pypi.python.org/packages/2.7/i/ipython/ipython-3.2.0-py2-none-any.whl#md5=a90449b96ad77d357d0328fdd14a4605 (from https://pypi.python.org/simple/ipython/); it is not compatible with this Python
    Skipping link https://pypi.python.org/packages/2.7/i/ipython/ipython-3.2.1-py2-none-any.whl#md5=b51eb2e9fa7861fe4bdad24e0a3a4bba (from https://pypi.python.org/simple/ipython/); it is not compatible with this Python
    Skipping link https://pypi.python.org/packages/2.7/i/ipython/ipython-3.2.2-py2-none-any.whl#md5=1373b7c18a8db63859b80a2bcc6ccc53 (from https://pypi.python.org/simple/ipython/); it is not compatible with this Python
    Skipping link https://pypi.python.org/packages/2.7/i/ipython/ipython-3.2.3-py2-none-any.whl#md5=089636f96e341a445fcda50f9dac36b4 (from https://pypi.python.org/simple/ipython/); it is not compatible with this Python
    Skipping link https://pypi.python.org/packages/2.7/i/ipython/ipython-4.0.0-py2-none-any.whl#md5=f60fe0df448641c6e743ed0d2bad65cd (from https://pypi.python.org/simple/ipython/); it is not compatible with this Python
    Skipping link https://pypi.python.org/packages/2.7/i/ipython/ipython-4.0.0b1-py2-none-any.whl#md5=31a663119b52416bb1745952c1b94c8a (from https://pypi.python.org/simple/ipython/); it is not compatible with this Python
    Skipping link https://pypi.python.org/packages/2.7/i/ipython/ipython-4.0.1-py2-none-any.whl#md5=cd58cf328e6512850a810e074e5e046d (from https://pypi.python.org/simple/ipython/); it is not compatible with this Python
    Skipping link https://pypi.python.org/packages/2.7/i/ipython/ipython-4.0.2-py2-none-any.whl#md5=65756eff4049f60c85635183917971e9 (from https://pypi.python.org/simple/ipython/); it is not compatible with this Python
    Found link https://pypi.python.org/packages/3.3/i/ipython/ipython-2.0.0-py33-none-any.whl#md5=2c037036abd0f70b6848cd4e019059f9 (from https://pypi.python.org/simple/ipython/), version: 2.0.0
    Found link https://pypi.python.org/packages/3.3/i/ipython/ipython-2.1.0-py3-none-any.whl#md5=732009ff05c5617ee6f31b19740445fb (from https://pypi.python.org/simple/ipython/), version: 2.1.0
    Found link https://pypi.python.org/packages/3.4/i/ipython/ipython-2.2.0-py3-none-any.whl#md5=c8edd4c4a881b04a155675d18645be8b (from https://pypi.python.org/simple/ipython/), version: 2.2.0
    Found link https://pypi.python.org/packages/3.4/i/ipython/ipython-2.3.0-py3-none-any.whl#md5=48ece5075f72215f11986bb1f08f3a7e (from https://pypi.python.org/simple/ipython/), version: 2.3.0
    Found link https://pypi.python.org/packages/3.4/i/ipython/ipython-2.3.1-py3-none-any.whl#md5=68dc5a6ff17731400a32a702d89b2d4e (from https://pypi.python.org/simple/ipython/), version: 2.3.1
    Found link https://pypi.python.org/packages/3.4/i/ipython/ipython-2.4.0-py3-none-any.whl#md5=f4b16ec7adf85fd065f444e8e33f9a63 (from https://pypi.python.org/simple/ipython/), version: 2.4.0
    Found link https://pypi.python.org/packages/3.4/i/ipython/ipython-2.4.1-py3-none-any.whl#md5=7e377fe675a88eb49e720c98de4a7ee4 (from https://pypi.python.org/simple/ipython/), version: 2.4.1
    Found link https://pypi.python.org/packages/3.4/i/ipython/ipython-3.0.0-py3-none-any.whl#md5=10f7b64e14954d5578eaaa07e0658c2d (from https://pypi.python.org/simple/ipython/), version: 3.0.0
    Found link https://pypi.python.org/packages/3.4/i/ipython/ipython-3.1.0-py3-none-any.whl#md5=e149386e11472f9cf730773b2d824253 (from https://pypi.python.org/simple/ipython/), version: 3.1.0
    Found link https://pypi.python.org/packages/3.4/i/ipython/ipython-3.2.0-py3-none-any.whl#md5=fef0007941d595e126ec2ae5b095129f (from https://pypi.python.org/simple/ipython/), version: 3.2.0
    Found link https://pypi.python.org/packages/3.4/i/ipython/ipython-3.2.1-py3-none-any.whl#md5=de24dc14c7df366e2bfd3bf9d2cb59cf (from https://pypi.python.org/simple/ipython/), version: 3.2.1
    Found link https://pypi.python.org/packages/3.4/i/ipython/ipython-3.2.2-py3-none-any.whl#md5=5a05be8f8b3fda81878ea5bc9fc0242b (from https://pypi.python.org/simple/ipython/), version: 3.2.2
    Found link https://pypi.python.org/packages/3.4/i/ipython/ipython-3.2.3-py3-none-any.whl#md5=05635d7fff4f1d5ff721d25d3d02155b (from https://pypi.python.org/simple/ipython/), version: 3.2.3
    Found link https://pypi.python.org/packages/3.4/i/ipython/ipython-4.0.0-py3-none-any.whl#md5=8070db2f31a27e78576b44007bd44a2c (from https://pypi.python.org/simple/ipython/), version: 4.0.0
    Found link https://pypi.python.org/packages/3.4/i/ipython/ipython-4.0.0b1-py3-none-any.whl#md5=69927eddcf34cdd45b7749db3d220b96 (from https://pypi.python.org/simple/ipython/), version: 4.0.0b1
    Found link https://pypi.python.org/packages/3.4/i/ipython/ipython-4.0.1-py3-none-any.whl#md5=a122dacd9bc3255c33fdb7e39d78cd69 (from https://pypi.python.org/simple/ipython/), version: 4.0.1
    Found link https://pypi.python.org/packages/3.4/i/ipython/ipython-4.0.2-py3-none-any.whl#md5=52f9768c617b01f4272b7be11dfe6503 (from https://pypi.python.org/simple/ipython/), version: 4.0.2
    Skipping link https://pypi.python.org/packages/any/i/ipython/ipython-0.12.1.win-amd64.exe#md5=d7c11a21948d75cec7b45f90d557f0d1 (from https://pypi.python.org/simple/ipython/); unsupported archive format: .exe
    Skipping link https://pypi.python.org/packages/any/i/ipython/ipython-0.12.1.win32.exe#md5=471dae23ce46eb74027ef08828b91eb9 (from https://pypi.python.org/simple/ipython/); unsupported archive format: .exe
    Skipping link https://pypi.python.org/packages/any/i/ipython/ipython-0.13.1.py2-win-amd64.exe#md5=fc0f7aa01342eeeb5c6a2a0950c28562 (from https://pypi.python.org/simple/ipython/); unsupported archive format: .exe
    Skipping link https://pypi.python.org/packages/any/i/ipython/ipython-0.13.1.py2-win32-PROPER.exe#md5=2da9b1e60382c97da6f05e8caece3180 (from https://pypi.python.org/simple/ipython/); unsupported archive format: .exe
    Skipping link https://pypi.python.org/packages/any/i/ipython/ipython-0.13.1.py3-win-amd64-PROPER.exe#md5=2c4e26db957529cac7e61d0c7e411f92 (from https://pypi.python.org/simple/ipython/); unsupported archive format: .exe
    Skipping link https://pypi.python.org/packages/any/i/ipython/ipython-0.13.1.py3-win32.exe#md5=43c1c567b920b718a38fffd1866a4392 (from https://pypi.python.org/simple/ipython/); unsupported archive format: .exe
    Skipping link https://pypi.python.org/packages/any/i/ipython/ipython-0.13.2.py2-win-amd64.exe#md5=7dc34c2042ab0efff74ede38c87dbdc5 (from https://pypi.python.org/simple/ipython/); unsupported archive format: .exe
    Skipping link https://pypi.python.org/packages/any/i/ipython/ipython-0.13.2.py2-win32.exe#md5=aaff656b351fcb05ca5745ca703b4ade (from https://pypi.python.org/simple/ipython/); unsupported archive format: .exe
    Skipping link https://pypi.python.org/packages/any/i/ipython/ipython-0.13.2.py3-win-amd64.exe#md5=91de7d2b9c0397e93b87c8790863d3bf (from https://pypi.python.org/simple/ipython/); unsupported archive format: .exe
    Skipping link https://pypi.python.org/packages/any/i/ipython/ipython-0.13.2.py3-win32.exe#md5=094c24c083f243d525bde24195704bb6 (from https://pypi.python.org/simple/ipython/); unsupported archive format: .exe
    Skipping link https://pypi.python.org/packages/any/i/ipython/ipython-0.13.py2-win-amd64.exe#md5=945fc78dfd38631c4720c58139a83255 (from https://pypi.python.org/simple/ipython/); unsupported archive format: .exe
    Skipping link https://pypi.python.org/packages/any/i/ipython/ipython-0.13.py2-win32.exe#md5=9ef302f4db18944d3523eb2e77bdd5ab (from https://pypi.python.org/simple/ipython/); unsupported archive format: .exe
    Skipping link https://pypi.python.org/packages/any/i/ipython/ipython-0.13.py3-win-amd64.exe#md5=d180adb3e48f8e4704bd88c1dc7b2c72 (from https://pypi.python.org/simple/ipython/); unsupported archive format: .exe
    Skipping link https://pypi.python.org/packages/any/i/ipython/ipython-0.13.py3-win32.exe#md5=16cfebdb126ca7a07d51b2f6b2302edd (from https://pypi.python.org/simple/ipython/); unsupported archive format: .exe
    Found link https://pypi.python.org/packages/py2.py3/i/ipython/ipython-4.1.0rc1-py2.py3-none-any.whl#md5=512f0431c850c75a12baa9f8c4a9f12f (from https://pypi.python.org/simple/ipython/), version: 4.1.0rc1
    Skipping link https://pypi.python.org/packages/py2/i/ipython/ipython-4.0.3-py2-none-any.whl#md5=6567a52aa2fb8b772ec20b2f084307e9 (from https://pypi.python.org/simple/ipython/); it is not compatible with this Python
    Skipping link https://pypi.python.org/packages/py2/i/ipython/ipython-4.1.0-py2-none-any.whl#md5=19816b11e017ef2bcdc8a92dac19bc30 (from https://pypi.python.org/simple/ipython/); it is not compatible with this Python
    Skipping link https://pypi.python.org/packages/py2/i/ipython/ipython-4.1.0rc2-py2-none-any.whl#md5=64e8aec3f7559256c88cd3295ec59b07 (from https://pypi.python.org/simple/ipython/); it is not compatible with this Python
    Skipping link https://pypi.python.org/packages/py2/i/ipython/ipython-4.1.1-py2-none-any.whl#md5=6935367967dd21dc1ac653de2f0d7bbc (from https://pypi.python.org/simple/ipython/); it is not compatible with this Python
    Skipping link https://pypi.python.org/packages/py2/i/ipython/ipython-4.1.2-py2-none-any.whl#md5=564543ff3d70040076111ced09d01472 (from https://pypi.python.org/simple/ipython/); it is not compatible with this Python
    Found link https://pypi.python.org/packages/py3/i/ipython/ipython-4.0.3-py3-none-any.whl#md5=6d41e9ec874864d3342724dc350d9ba6 (from https://pypi.python.org/simple/ipython/), version: 4.0.3
    Found link https://pypi.python.org/packages/py3/i/ipython/ipython-4.1.0-py3-none-any.whl#md5=955c0dd72186ab10c67f28f211461370 (from https://pypi.python.org/simple/ipython/), version: 4.1.0
    Found link https://pypi.python.org/packages/py3/i/ipython/ipython-4.1.0rc2-py3-none-any.whl#md5=621424862ccdbaf923ae98ba72641e1e (from https://pypi.python.org/simple/ipython/), version: 4.1.0rc2
    Found link https://pypi.python.org/packages/py3/i/ipython/ipython-4.1.1-py3-none-any.whl#md5=1370971c997538c1d59718eba567cf1c (from https://pypi.python.org/simple/ipython/), version: 4.1.1
    Found link https://pypi.python.org/packages/py3/i/ipython/ipython-4.1.2-py3-none-any.whl#md5=414e5b95661e2c9b058244d740428ef5 (from https://pypi.python.org/simple/ipython/), version: 4.1.2
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-0.10.1.tar.gz#md5=54ae47079b0e9a0998593a99ce76ec1f (from https://pypi.python.org/simple/ipython/), version: 0.10.1
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-0.10.1.zip#md5=f636c7ea03ff626a6ef9bd9a901de691 (from https://pypi.python.org/simple/ipython/), version: 0.10.1
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-0.10.2.tar.gz#md5=dda59bfc6e256ce786c4bc4aadb220a4 (from https://pypi.python.org/simple/ipython/), version: 0.10.2
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-0.10.2.zip#md5=228d0bd2fe4f5064082d7952a41bc96d (from https://pypi.python.org/simple/ipython/), version: 0.10.2
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-0.10.tar.gz#md5=dd10cd1b622c16c1afca2239fcc0dfdf (from https://pypi.python.org/simple/ipython/), version: 0.10
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-0.11.tar.gz#md5=efc899e752a4a4a67a99575cea1719ef (from https://pypi.python.org/simple/ipython/), version: 0.11
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-0.11.zip#md5=8e4155313a2e29addcec100835fe39ce (from https://pypi.python.org/simple/ipython/), version: 0.11
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-0.12.1.tar.gz#md5=ae3a9851cd99f40ba5227efec58c7a6c (from https://pypi.python.org/simple/ipython/), version: 0.12.1
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-0.12.1.zip#md5=af3582d09815829d745a7179d6dc2d49 (from https://pypi.python.org/simple/ipython/), version: 0.12.1
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-0.12.tar.gz#md5=0199b62aa65986726b46247db3cb06cf (from https://pypi.python.org/simple/ipython/), version: 0.12
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-0.12.zip#md5=ec135100af088a9607fd3eed91fc476f (from https://pypi.python.org/simple/ipython/), version: 0.12
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-0.13.1.tar.gz#md5=ca7e75f7c802afc6aaa0a1ea59846420 (from https://pypi.python.org/simple/ipython/), version: 0.13.1
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-0.13.1.zip#md5=75ace1afede8fe8cd6143e35ca4418bd (from https://pypi.python.org/simple/ipython/), version: 0.13.1
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-0.13.2.tar.gz#md5=ead3b7eb70c653b537fb9d96d71b8b2a (from https://pypi.python.org/simple/ipython/), version: 0.13.2
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-0.13.2.zip#md5=76195c97e426fbc641f66c55faa0318a (from https://pypi.python.org/simple/ipython/), version: 0.13.2
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-0.13.tar.gz#md5=9f04b590463dfe981e56ff1aebc90e23 (from https://pypi.python.org/simple/ipython/), version: 0.13
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-0.13.zip#md5=a644023f079bdc22797f3b7ca3f076a0 (from https://pypi.python.org/simple/ipython/), version: 0.13
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-1.0.0.tar.gz#md5=2268fa83f257d14943eb04e3333a6fac (from https://pypi.python.org/simple/ipython/), version: 1.0.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-1.0.0.zip#md5=931bb0cd54d83316f8e9640292496c22 (from https://pypi.python.org/simple/ipython/), version: 1.0.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-1.1.0.tar.gz#md5=70d69c78122923879232567ac3c47cef (from https://pypi.python.org/simple/ipython/), version: 1.1.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-1.1.0.zip#md5=3b383afb9f367eb387d36e11f6e7c4cc (from https://pypi.python.org/simple/ipython/), version: 1.1.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-1.2.0.tar.gz#md5=6b4cb02d5c48ca1776fb6127d37e9319 (from https://pypi.python.org/simple/ipython/), version: 1.2.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-1.2.0.zip#md5=8cf63de32fffd79cb4fb563b22a8ff32 (from https://pypi.python.org/simple/ipython/), version: 1.2.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-1.2.1.tar.gz#md5=4ffb36697f7ca8cb4a2de0f5b30bc89c (from https://pypi.python.org/simple/ipython/), version: 1.2.1
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-1.2.1.zip#md5=a4b36d55e2671c6e821018a63d50b8b1 (from https://pypi.python.org/simple/ipython/), version: 1.2.1
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-2.0.0.tar.gz#md5=dd209ff8c7b08565478e4fc04bdf33ee (from https://pypi.python.org/simple/ipython/), version: 2.0.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-2.0.0.zip#md5=c1e032071d266237c31a5c2758e81f3f (from https://pypi.python.org/simple/ipython/), version: 2.0.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-2.1.0.tar.gz#md5=785c7b6364c6a0dd34aa4ea970cf83b9 (from https://pypi.python.org/simple/ipython/), version: 2.1.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-2.1.0.zip#md5=2e5381a6f754339cd7dd30b61a172fc5 (from https://pypi.python.org/simple/ipython/), version: 2.1.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-2.2.0.tar.gz#md5=b91d3724f655a8e16d022772f696cfd5 (from https://pypi.python.org/simple/ipython/), version: 2.2.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-2.2.0.zip#md5=0fe93ebfb0c352110d5efb57ca60867b (from https://pypi.python.org/simple/ipython/), version: 2.2.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-2.3.0.tar.gz#md5=222eecd3a8299c0119c56954c79e4d0f (from https://pypi.python.org/simple/ipython/), version: 2.3.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-2.3.0.zip#md5=7930f128d50b6610bc780f00dbfadf90 (from https://pypi.python.org/simple/ipython/), version: 2.3.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-2.3.1.tar.gz#md5=2b7085525dac11190bfb45bb8ec8dcbf (from https://pypi.python.org/simple/ipython/), version: 2.3.1
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-2.3.1.zip#md5=0affd51ad4a620fe304018094def85cc (from https://pypi.python.org/simple/ipython/), version: 2.3.1
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-2.4.0.tar.gz#md5=c386d654d1291e8afaf3643720044893 (from https://pypi.python.org/simple/ipython/), version: 2.4.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-2.4.0.zip#md5=23f454140e42269eb1e419bf26221453 (from https://pypi.python.org/simple/ipython/), version: 2.4.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-2.4.1.tar.gz#md5=70149981d6515d77ecb3d7507de2d7d9 (from https://pypi.python.org/simple/ipython/), version: 2.4.1
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-2.4.1.zip#md5=ec85134374d063488e7ebe46da270571 (from https://pypi.python.org/simple/ipython/), version: 2.4.1
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-3.0.0.tar.gz#md5=b3f00f3c0be036fafef3b0b9d663f27e (from https://pypi.python.org/simple/ipython/), version: 3.0.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-3.0.0.zip#md5=0e60b2dc9958ba4a35aef1101e5eebd6 (from https://pypi.python.org/simple/ipython/), version: 3.0.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-3.1.0.tar.gz#md5=a749d90c16068687b0ec45a27e72ef8f (from https://pypi.python.org/simple/ipython/), version: 3.1.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-3.1.0.zip#md5=dfa0766ee4b035f6048740e8fcc9b8bb (from https://pypi.python.org/simple/ipython/), version: 3.1.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-3.2.0.tar.gz#md5=41aa9b34f39484861e77c46ffb29b699 (from https://pypi.python.org/simple/ipython/), version: 3.2.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-3.2.0.zip#md5=5a2521ead0885cd5fd69b533a1f9471a (from https://pypi.python.org/simple/ipython/), version: 3.2.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-3.2.1.tar.gz#md5=61c2d5665ff1bd65eceb19fa7f1b23c7 (from https://pypi.python.org/simple/ipython/), version: 3.2.1
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-3.2.1.zip#md5=5b084f3281d5f8f098d13fac99fdc847 (from https://pypi.python.org/simple/ipython/), version: 3.2.1
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-3.2.2.tar.gz#md5=8cfb27e040b6a95a2bc526f36bd45905 (from https://pypi.python.org/simple/ipython/), version: 3.2.2
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-3.2.2.zip#md5=2e230ae60c64c59f32a26386aa867e6b (from https://pypi.python.org/simple/ipython/), version: 3.2.2
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-3.2.3.tar.gz#md5=74138ea620fb828a356d8d02a08ba29c (from https://pypi.python.org/simple/ipython/), version: 3.2.3
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-3.2.3.zip#md5=3be0bf825fd2a4c3e430911ed37b2f8f (from https://pypi.python.org/simple/ipython/), version: 3.2.3
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-4.0.0.tar.gz#md5=c2fecbcf1c0fbdc82625c77a50733dd6 (from https://pypi.python.org/simple/ipython/), version: 4.0.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-4.0.0.zip#md5=0ba5dff36c5bf40ee383d9eb93f0d6d4 (from https://pypi.python.org/simple/ipython/), version: 4.0.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-4.0.0b1.tar.gz#md5=e32e4ea0ed8312311bb8cb3e0af0bea1 (from https://pypi.python.org/simple/ipython/), version: 4.0.0b1
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-4.0.0b1.zip#md5=798f0513e2ab848ec9d2741b23fd06a2 (from https://pypi.python.org/simple/ipython/), version: 4.0.0b1
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-4.0.1.tar.gz#md5=059841210e12543d50a409cb766120ea (from https://pypi.python.org/simple/ipython/), version: 4.0.1
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-4.0.1.zip#md5=274fe8b87d9c1a5816579933f0825c66 (from https://pypi.python.org/simple/ipython/), version: 4.0.1
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-4.0.2.tar.gz#md5=dcc5f52fe353af05e82aa532dc8d2ea8 (from https://pypi.python.org/simple/ipython/), version: 4.0.2
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-4.0.2.zip#md5=2c442a4506dd4a854b17ebdb6bf6e038 (from https://pypi.python.org/simple/ipython/), version: 4.0.2
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-4.0.3.tar.gz#md5=16d4c8e79510ba427fb5336e15b0ea34 (from https://pypi.python.org/simple/ipython/), version: 4.0.3
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-4.0.3.zip#md5=0e9e7a22050f41bd0914c9beab22e5c4 (from https://pypi.python.org/simple/ipython/), version: 4.0.3
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-4.1.0.tar.gz#md5=e4c648002bf966c234d6e99efa6d7fef (from https://pypi.python.org/simple/ipython/), version: 4.1.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-4.1.0.zip#md5=76e3d9f30bd1dca458b26a6165df9001 (from https://pypi.python.org/simple/ipython/), version: 4.1.0
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-4.1.0rc1.tar.gz#md5=2aff56d8e78341f64663bcbc81366376 (from https://pypi.python.org/simple/ipython/), version: 4.1.0rc1
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-4.1.0rc1.zip#md5=a9ff233f176dd99b076b81dc8904ab7a (from https://pypi.python.org/simple/ipython/), version: 4.1.0rc1
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-4.1.0rc2.tar.gz#md5=1337191d423ef5402bf72a99fca08c0e (from https://pypi.python.org/simple/ipython/), version: 4.1.0rc2
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-4.1.0rc2.zip#md5=0c78ce35044e43f6168cf5dda7b1ba95 (from https://pypi.python.org/simple/ipython/), version: 4.1.0rc2
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-4.1.1.tar.gz#md5=3da622447b3b7ca7d41c868c80bb8b0e (from https://pypi.python.org/simple/ipython/), version: 4.1.1
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-4.1.1.zip#md5=445ff597cccb7818c23c988010f62838 (from https://pypi.python.org/simple/ipython/), version: 4.1.1
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-4.1.2.tar.gz#md5=28c9ebd1abfb9b4a07cb87005f285edd (from https://pypi.python.org/simple/ipython/), version: 4.1.2
    Found link https://pypi.python.org/packages/source/i/ipython/ipython-4.1.2.zip#md5=639f8b63aa446d2c0a597a9a8c63a6f0 (from https://pypi.python.org/simple/ipython/), version: 4.1.2
  Using version 3.2.3 (newest of versions: 3.2.3)
  "GET /packages/3.4/i/ipython/ipython-3.2.3-py3-none-any.whl HTTP/1.1" 200 3419072
  Downloading ipython-3.2.3-py3-none-any.whl (3.4MB)
  Downloading from URL https://pypi.python.org/packages/3.4/i/ipython/ipython-3.2.3-py3-none-any.whl#md5=05635d7fff4f1d5ff721d25d3d02155b (from https://pypi.python.org/simple/ipython/)
    100% |████████████████████████████████| 3.4MB 3.6MB/s 
  Saved ./ipython-3.2.3-py3-none-any.whl
Successfully downloaded ipython
Cleaning up...
  Removing source in /tmp/pip-build-qr95ow8n/ipython
vagrant@vagrant-ubuntu-trusty-64:~/issue502$ unzip -q ipython-3.2.3-py3-none-any.whl
vagrant@vagrant-ubuntu-trusty-64:~/issue502$ ~/kenv/bin/python -m json.tool ipython-3.2.3.dist-info/metadata.json | tail
        },
        {
            "requires": [
                "terminado (>=0.3.3)"
            ],
            "extra": "notebook' and sys.platform != 'win32"
        }
    ],
    "version": "3.2.3"
}

If on the other hand, I use pip to install from the .tar.gz file (https://pypi.python.org/packages/source/i/ipython/ipython-3.2.3.tar.gz#md5=74138ea620fb828a356d8d02a08ba29c), it builds a wheel and that wheel doesn't have the issue. Therefore, I suspect ipython 3.2.3 was built on a buggy version of wheel and that wheel should be pulled from PyPI.

@dstufft Do you recognize this error? Do you know how widespread it might be?

ghost commented 8 years ago

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


Thanks @miohtama . With that, I was able to replicate the issue.

At the first stage, where the error first exhibits itself in loading entry points, I find this in the 'metadata.json' for ipython:

(kenv) vagrant@vagrant-ubuntu-trusty-64:~$ virtualenv --python python3.5 kenv
Running virtualenv with interpreter /usr/bin/python3.5
Using base prefix '/usr'
New python executable in /home/vagrant/kenv/bin/python3.5
Also creating executable in /home/vagrant/kenv/bin/python
Installing setuptools, pip, wheel...done.
(kenv) vagrant@vagrant-ubuntu-trusty-64:~$ kenv/bin/pip install -q ipython==3.2.3
(kenv) vagrant@vagrant-ubuntu-trusty-64:~$ kenv/bin/python -m json.tool kenv/lib/python3.5/site-packages/ipython-3.2.3.dist-info/metadata.json 
{
    "generator": "bdist_wheel (0.26.0)",
    "summary": "IPython: Productive Interactive Computing",
    "classifiers": [
        "Intended Audience :: Developers",
        "Intended Audience :: Science/Research",
        "License :: OSI Approved :: BSD License",
        "Programming Language :: Python",
        "Programming Language :: Python :: 2",
        "Programming Language :: Python :: 2.7",
        "Programming Language :: Python :: 3",
        "Topic :: System :: Distributed Computing",
        "Topic :: System :: Shells"
    ],
    "download_url": "https://github.com/ipython/ipython/downloads",
    "extensions": {
        "python.details": {
            "project_urls": {
                "Home": "http://ipython.org"
            },
            "contacts": [
                {
                    "email": "ipython-dev@scipy.org",
                    "name": "The IPython Development Team",
                    "role": "author"
                }
            ],
            "document_names": {
                "description": "DESCRIPTION.rst"
            }
        },
        "python.exports": {
            "console_scripts": {
                "ipcluster": "IPython.parallel.apps.ipclusterapp:launch_new_instance",
                "ipcluster3": "IPython.parallel.apps.ipclusterapp:launch_new_instance",
                "ipcontroller": "IPython.parallel.apps.ipcontrollerapp:launch_new_instance",
                "ipcontroller3": "IPython.parallel.apps.ipcontrollerapp:launch_new_instance",
                "ipengine": "IPython.parallel.apps.ipengineapp:launch_new_instance",
                "ipengine3": "IPython.parallel.apps.ipengineapp:launch_new_instance",
                "iptest": "IPython.testing.iptestcontroller:main",
                "iptest3": "IPython.testing.iptestcontroller:main",
                "ipython": "IPython:start_ipython",
                "ipython3": "IPython:start_ipython"
            },
            "pygments.lexers": {
                "ipython": "IPython.lib.lexers:IPythonLexer",
                "ipython3": "IPython.lib.lexers:IPython3Lexer",
                "ipythonconsole": "IPython.lib.lexers:IPythonConsoleLexer"
            }
        },
        "python.commands": {
            "wrap_console": {
                "ipcluster": "IPython.parallel.apps.ipclusterapp:launch_new_instance",
                "ipcluster3": "IPython.parallel.apps.ipclusterapp:launch_new_instance",
                "ipcontroller": "IPython.parallel.apps.ipcontrollerapp:launch_new_instance",
                "ipcontroller3": "IPython.parallel.apps.ipcontrollerapp:launch_new_instance",
                "ipengine": "IPython.parallel.apps.ipengineapp:launch_new_instance",
                "ipengine3": "IPython.parallel.apps.ipengineapp:launch_new_instance",
                "iptest": "IPython.testing.iptestcontroller:main",
                "iptest3": "IPython.testing.iptestcontroller:main",
                "ipython": "IPython:start_ipython",
                "ipython3": "IPython:start_ipython"
            }
        }
    },
    "keywords": [
        "Interactive",
        "Interpreter",
        "Shell",
        "Parallel",
        "Distributed",
        "Web-based",
        "computing",
        "Qt",
        "console",
        "Embedding"
    ],
    "license": "BSD",
    "metadata_version": "2.0",
    "name": "ipython",
    "platform": "Linux",
    "extras": [
        "all",
        "all' and sys.platform != 'win32",
        "all' and sys.platform == 'win32' and platform.python_implementation == 'CPython",
        "doc",
        "nbconvert",
        "nbformat",
        "notebook",
        "notebook' and sys.platform != 'win32",
        "parallel",
        "qtconsole",
        "terminal",
        "terminal' and sys.platform == 'win32' and platform.python_implementation == 'CPython",
        "test",
        "test' and python_version < '3.3"
    ],
    "run_requires": [
        {
            "requires": [
                "Sphinx (>=1.1)",
                "jinja2",
                "jsonschema (>=2.0)",
                "mistune (>=0.3.1)",
                "mistune (>=0.5)",
                "nose (>=0.10.1)",
                "numpydoc",
                "pygments",
                "pyzmq (>=13)",
                "requests",
                "tornado (>=4.0)"
            ],
            "extra": "all"
        },
        {
            "requires": [
                "Sphinx (>=1.1)",
                "numpydoc"
            ],
            "extra": "doc"
        },
        {
            "requires": [
                "gnureadline"
            ],
            "environment": "sys.platform == 'darwin' and platform.python_implementation == 'CPython'"
        },
        {
            "requires": [
                "jinja2",
                "jsonschema (>=2.0)",
                "mistune (>=0.3.1)",
                "pygments"
            ],
            "extra": "nbconvert"
        },
        {
            "requires": [
                "jinja2",
                "jsonschema (>=2.0)",
                "mistune (>=0.5)",
                "pygments",
                "pyzmq (>=13)",
                "terminado (>=0.3.3)",
                "tornado (>=4.0)"
            ],
            "extra": "notebook"
        },
        {
            "requires": [
                "jsonschema (>=2.0)"
            ],
            "extra": "nbformat"
        },
        {
            "requires": [
                "mock"
            ],
            "extra": "test' and python_version < '3.3"
        },
        {
            "requires": [
                "nose (>=0.10.1)",
                "requests"
            ],
            "extra": "test"
        },
        {
            "requires": [
                "pygments",
                "pyzmq (>=13)"
            ],
            "extra": "qtconsole"
        },
        {
            "requires": [
                "pyreadline (>=2.0)"
            ],
            "extra": "all' and sys.platform == 'win32' and platform.python_implementation == 'CPython"
        },
        {
            "requires": [
                "pyreadline (>=2.0)"
            ],
            "extra": "terminal' and sys.platform == 'win32' and platform.python_implementation == 'CPython"
        },
        {
            "requires": [
                "pyzmq (>=13)"
            ],
            "extra": "parallel"
        },
        {
            "requires": [
                "terminado (>=0.3.3)"
            ],
            "extra": "all' and sys.platform != 'win32"
        },
        {
            "requires": [
                "terminado (>=0.3.3)"
            ],
            "extra": "notebook' and sys.platform != 'win32"
        }
    ],
    "version": "3.2.3"
}

In particular, note the 'extras' with strange syntax and mismatched quotes. Something isn't generating that metadata properly.

ghost commented 8 years ago

Original comment by miohtama (Bitbucket: miohtama, GitHub: miohtama):


Here is my Python 3.5 repeatable test case:

Let's start by creating Python 3.5 virtualenv on Ubuntu 14.04 from deadsnakes repo::

(xenv) wsgi@ip-172-30-1-40:~$ virtualenv -p python3.5 kenv
Running virtualenv with interpreter /home/wsgi/xenv/bin/python3.5
Using real prefix '/usr'
Path not in prefix '/home/wsgi/xenv/include/python3.5m' '/usr'
New python executable in /home/wsgi/kenv/bin/python3.5
Also creating executable in /home/wsgi/kenv/bin/python
Installing setuptools, pip, wheel...done.

(xenv) wsgi@ip-172-30-1-40:~$ source kenv/bin/activate

Install IPython::

(kenv) wsgi@ip-172-30-1-40:~$ pip install ipython==3.2.3
Collecting ipython==3.2.3
  Using cached ipython-3.2.3-py3-none-any.whl
Installing collected packages: ipython
Successfully installed ipython-3.2.3

load_entry_point() is busted::

(kenv) wsgi@ip-172-30-1-40:~$ python    
Python 3.5.1 (default, Dec 18 2015, 00:00:00) 
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.

>>> from pkg_resources import load_entry_point ; load_entry_point('ipython', 'console_scripts', 'ipython')()
Traceback (most recent call last):
  File "/home/wsgi/kenv/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2684, in _dep_map
    return self.__dep_map
  File "/home/wsgi/kenv/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2518, in __getattr__
    raise AttributeError(attr)
AttributeError: _DistInfoDistribution__dep_map

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/wsgi/kenv/lib/python3.5/site-packages/pkg_resources/_vendor/packaging/requirements.py", line 90, in __init__
    req = REQUIREMENT.parseString(requirement_string)
  File "/home/wsgi/kenv/lib/python3.5/site-packages/pkg_resources/_vendor/pyparsing.py", line 1137, in parseString
    raise exc
  File "/home/wsgi/kenv/lib/python3.5/site-packages/pkg_resources/_vendor/pyparsing.py", line 1127, in parseString
    loc, tokens = self._parse( instring, 0 )
  File "/home/wsgi/kenv/lib/python3.5/site-packages/pkg_resources/_vendor/pyparsing.py", line 1001, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/home/wsgi/kenv/lib/python3.5/site-packages/pkg_resources/_vendor/pyparsing.py", line 2412, in parseImpl
    loc, exprtokens = e._parse( instring, loc, doActions )
  File "/home/wsgi/kenv/lib/python3.5/site-packages/pkg_resources/_vendor/pyparsing.py", line 1005, in _parseNoCache
    loc,tokens = self.parseImpl( instring, preloc, doActions )
  File "/home/wsgi/kenv/lib/python3.5/site-packages/pkg_resources/_vendor/pyparsing.py", line 2215, in parseImpl
    raise ParseException(instring, loc, self.errmsg, self)
pkg_resources._vendor.pyparsing.ParseException: Expected stringEnd (at char 11), (line:1, col:12)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/wsgi/kenv/lib/python3.5/site-packages/pkg_resources/__init__.py", line 549, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/home/wsgi/kenv/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2542, in load_entry_point
    return ep.load()
  File "/home/wsgi/kenv/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2201, in load
    self.require(*args, **kwargs)
  File "/home/wsgi/kenv/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2217, in require
    reqs = self.dist.requires(self.extras)
  File "/home/wsgi/kenv/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2462, in requires
    dm = self._dep_map
  File "/home/wsgi/kenv/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2686, in _dep_map
    self.__dep_map = self._compute_dependencies()
  File "/home/wsgi/kenv/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2696, in _compute_dependencies
    current_req = packaging.requirements.Requirement(req)
  File "/home/wsgi/kenv/lib/python3.5/site-packages/pkg_resources/_vendor/packaging/requirements.py", line 94, in __init__
    requirement_string[e.loc:e.loc + 8]))
pkg_resources.extern.packaging.requirements.InvalidRequirement: Invalid requirement, parse error at "'; sys.pl'"
>>> 

No setuptools in the pip list::

(kenv) wsgi@ip-172-30-1-40:~$ pip freeze
ipython==3.2.3

pip cannot upgrade the setuptools::

(kenv) wsgi@ip-172-30-1-40:~$ pip install -U setuptools
Requirement already up-to-date: setuptools in ./kenv/lib/python3.5/site-packages

Let's downgrade setuptools::

(kenv) wsgi@ip-172-30-1-40:~$ pip install setuptools==20.1.1
Collecting setuptools==20.1.1
  Using cached setuptools-20.1.1-py2.py3-none-any.whl
Installing collected packages: setuptools
  Found existing installation: setuptools 20.2.2
    Uninstalling setuptools-20.2.2:
      Successfully uninstalled setuptools-20.2.2
Successfully installed setuptools-20.1.1

Now load_entry_point (ipython) works::

(kenv) wsgi@ip-172-30-1-40:~$ python
Python 3.5.1 (default, Dec 18 2015, 00:00:00) 
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.

>>> from pkg_resources import load_entry_point ; load_entry_point('ipython', 'console_scripts', 'ipython')()
Python 3.5.1 (default, Dec 18 2015, 00:00:00) 
...

If we upgrade setuptools again to 20.2.2 it doesn't work::

(kenv) wsgi@ip-172-30-1-40:~$ pip install setuptools==20.2.2
Collecting setuptools==20.2.2
  Downloading setuptools-20.2.2-py2.py3-none-any.whl (508kB)
    100% |████████████████████████████████| 512kB 2.8MB/s 
Installing collected packages: setuptools
  Found existing installation: setuptools 20.1.1
    Uninstalling setuptools-20.1.1:
      Successfully uninstalled setuptools-20.1.1
Successfully installed setuptools-20.2.2

(kenv) wsgi@ip-172-30-1-40:~$ python
Python 3.5.1 (default, Dec 18 2015, 00:00:00) 
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from pkg_resources import load_entry_point ; load_entry_point('ipython', 'console_scripts', 'ipython')()
Traceback (most recent call last):
  File "/home/wsgi/kenv/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2684, in _dep_map
...
ghost commented 8 years ago

Original comment by miohtama (Bitbucket: miohtama, GitHub: miohtama):


@jaraco: I think I have a Ansible playbook which can repeat this issue reliably on Amazon EC2 + Ubuntu servers. Let me dig into deeper it today and I hope I can come up with a repeatable recipe.

ghost commented 8 years ago

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


I'm sorry that people are still experiencing this issue. Unfortunately, no one has yet been able to describe a scenario in which the issue can be replicated. Here's me installing and running iPython on Ubuntu 14.04 / Python 3.4.3 in a virtualenv running Pip 8.1.0 / Setuptools 20.2.2 without any problems.

Last login: Sun Mar 13 21:31:47 on ttys000
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'ubuntu/trusty64' is up to date...
==> default: A newer version of the box 'ubuntu/trusty64' is available! You currently
==> default: have version '20160201.0.2'. The latest is version '20160304.0.3'. Run
==> default: `vagrant box update` to update.
==> default: Resuming suspended VM...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
==> default: Machine booted and ready!
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.
$ vagrant ssh
Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-77-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Mon Feb 29 21:41:44 UTC 2016

  System load:  0.0               Processes:           74
  Usage of /:   5.5% of 39.34GB   Users logged in:     0
  Memory usage: 60%               IP address for eth0: 10.0.2.15
  Swap usage:   0%

  Graph this data and manage this system at:
    https://landscape.canonical.com/

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

55 packages can be updated.
21 updates are security updates.

Last login: Mon Feb  8 03:01:41 2016 from 10.0.2.2
vagrant@vagrant-ubuntu-trusty-64:~$ python3 -V
Python 3.4.3
vagrant@vagrant-ubuntu-trusty-64:~$ cat /etc/issue
Ubuntu 14.04.3 LTS \n \l

vagrant@vagrant-ubuntu-trusty-64:~$ sudo apt-get install python3-pip
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  build-essential cpp-4.8 dpkg-dev g++ g++-4.8 gcc-4.8 gcc-4.8-base
  libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl
  libasan0 libatomic1 libdpkg-perl libexpat1-dev libfile-fcntllock-perl
  libgcc-4.8-dev libgomp1 libitm1 libpython3-dev libpython3.4 libpython3.4-dev
  libquadmath0 libstdc++-4.8-dev libstdc++6 libtsan0 python3-chardet
  python3-colorama python3-dev python3-distlib python3-html5lib
  python3-requests python3-setuptools python3-six python3-urllib3
  python3-wheel python3.4-dev
Suggested packages:
  gcc-4.8-locales debian-keyring g++-multilib g++-4.8-multilib gcc-4.8-doc
  libstdc++6-4.8-dbg gcc-4.8-multilib libgcc1-dbg libgomp1-dbg libitm1-dbg
  libatomic1-dbg libasan0-dbg libtsan0-dbg libquadmath0-dbg libstdc++-4.8-doc
  python3-genshi python3-lxml
The following NEW packages will be installed:
  build-essential dpkg-dev g++ g++-4.8 libalgorithm-diff-perl
  libalgorithm-diff-xs-perl libalgorithm-merge-perl libdpkg-perl libexpat1-dev
  libfile-fcntllock-perl libpython3-dev libpython3.4 libpython3.4-dev
  libstdc++-4.8-dev python3-chardet python3-colorama python3-dev
  python3-distlib python3-html5lib python3-pip python3-requests
  python3-setuptools python3-six python3-urllib3 python3-wheel python3.4-dev
The following packages will be upgraded:
  cpp-4.8 gcc-4.8 gcc-4.8-base libasan0 libatomic1 libgcc-4.8-dev libgomp1
  libitm1 libquadmath0 libstdc++6 libtsan0
11 upgraded, 26 newly installed, 0 to remove and 41 not upgraded.
Need to get 52.4 MB of archives.
After this operation, 83.4 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
...
Processing triggers for libc-bin (2.19-0ubuntu6.6) ...
vagrant@vagrant-ubuntu-trusty-64:~$ env/bin/easy_install --version
setuptools 20.2.2 from /home/vagrant/env/lib/python3.4/site-packages (Python 3.4)
vagrant@vagrant-ubuntu-trusty-64:~$ sudo python3 -m pip install virtualenv
Downloading/unpacking virtualenv
  Downloading virtualenv-15.0.0-py2.py3-none-any.whl (1.8MB): 1.8MB downloaded
Installing collected packages: virtualenv
Successfully installed virtualenv
Cleaning up...
vagrant@vagrant-ubuntu-trusty-64:~$ python3 -m virtualenv env
Using base prefix '/usr'
New python executable in /home/vagrant/env/bin/python3
Also creating executable in /home/vagrant/env/bin/python
Installing setuptools, pip, wheel...done.
vagrant@vagrant-ubuntu-trusty-64:~$ env/bin/easy_install --version
setuptools 20.2.2 from /home/vagrant/env/lib/python3.4/site-packages (Python 3.4)
vagrant@vagrant-ubuntu-trusty-64:~$ env/bin/pip --version
pip 8.1.0 from /home/vagrant/env/lib/python3.4/site-packages (python 3.4)
vagrant@vagrant-ubuntu-trusty-64:~$ env/bin/easy_install ipython
Searching for ipython
Reading https://pypi.python.org/simple/ipython/
Best match: ipython 4.1.2
Downloading https://pypi.python.org/packages/source/i/ipython/ipython-4.1.2.zip#md5=639f8b63aa446d2c0a597a9a8c63a6f0
Processing ipython-4.1.2.zip
Writing /tmp/easy_install-0bm8eb74/ipython-4.1.2/setup.cfg
Running ipython-4.1.2/setup.py -q bdist_egg --dist-dir /tmp/easy_install-0bm8eb74/ipython-4.1.2/egg-dist-tmp-wgkhayrg
checking package data
check version number
creating /home/vagrant/env/lib/python3.4/site-packages/ipython-4.1.2-py3.4.egg
Extracting ipython-4.1.2-py3.4.egg to /home/vagrant/env/lib/python3.4/site-packages
Adding ipython 4.1.2 to easy-install.pth file
Installing iptest3 script to /home/vagrant/env/bin
Installing ipython3 script to /home/vagrant/env/bin
Installing iptest script to /home/vagrant/env/bin
Installing ipython script to /home/vagrant/env/bin
...
Finished processing dependencies for ipython
vagrant@vagrant-ubuntu-trusty-64:~$ env/bin/ipython
Python 3.4.3 (default, Oct 14 2015, 20:28:29) 
Type "copyright", "credits" or "license" for more information.

IPython 4.1.2 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: 
Do you really want to exit ([y]/n)? 
vagrant@vagrant-ubuntu-trusty-64:~$ env/bin/easy_install ipython==3.2.3
Searching for ipython==3.2.3
Reading https://pypi.python.org/simple/ipython/
Best match: ipython 3.2.3
Downloading https://pypi.python.org/packages/source/i/ipython/ipython-3.2.3.zip#md5=3be0bf825fd2a4c3e430911ed37b2f8f
Processing ipython-3.2.3.zip
Writing /tmp/easy_install-4nt27v3f/ipython-3.2.3/setup.cfg
Running ipython-3.2.3/setup.py -q bdist_egg --dist-dir /tmp/easy_install-4nt27v3f/ipython-3.2.3/egg-dist-tmp-yb2cvvdy
rebuilding css and sourcemaps failed (not a problem)
invoke is required to rebuild css (pip install invoke)
checking package data
creating /home/vagrant/env/lib/python3.4/site-packages/ipython-3.2.3-py3.4.egg
Extracting ipython-3.2.3-py3.4.egg to /home/vagrant/env/lib/python3.4/site-packages
Removing ipython 4.1.2 from easy-install.pth file
Adding ipython 3.2.3 to easy-install.pth file
Installing ipcluster script to /home/vagrant/env/bin
Installing ipython3 script to /home/vagrant/env/bin
Installing ipengine3 script to /home/vagrant/env/bin
Installing ipcluster3 script to /home/vagrant/env/bin
Installing ipython script to /home/vagrant/env/bin
Installing ipcontroller3 script to /home/vagrant/env/bin
Installing iptest3 script to /home/vagrant/env/bin
Installing ipengine script to /home/vagrant/env/bin
Installing iptest script to /home/vagrant/env/bin
Installing ipcontroller script to /home/vagrant/env/bin

Installed /home/vagrant/env/lib/python3.4/site-packages/ipython-3.2.3-py3.4.egg
Processing dependencies for ipython==3.2.3
Finished processing dependencies for ipython==3.2.3
vagrant@vagrant-ubuntu-trusty-64:~$ env/bin/ipython
Python 3.4.3 (default, Oct 14 2015, 20:28:29) 
Type "copyright", "credits" or "license" for more information.

IPython 3.2.3 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: 
Do you really want to exit ([y]/n)? y
vagrant@vagrant-ubuntu-trusty-64:~$ 

I didn't attempt it using Python 3.5, as Ubuntu Linux 14.04 comes with Python 3.4, and that's probably unrelated to the cause.

At this point, the best I can do is apologize, but this issue won't receive any more attention until someone is able to demonstrate the steps necessary to replicate the failure from a clean environment or trace the issue in an environment where it is failing to identify the faulty state.

ghost commented 8 years ago

Original comment by miohtama (Bitbucket: miohtama, GitHub: miohtama):


Still with setuptools 20.2.2, IPython and Python 3.5 virtualenved on Ubuntu Linux 14.04: https://github.com/ipython/ipython/issues/9311

It installs cleanly on other machines (OSX), though, so I am not exactly sure what is triggering the issue. Something else beside setuptools version might be in play.

It might be that pip, virtualenv and easy_install install setuptools somehow differently and something is left dangling around?

ghost commented 8 years ago

Original comment by jessica_lucci (Bitbucket: jessica_lucci, GitHub: Unknown):


We're still seeing this issue with 20.2.2 as well, where the install of our package fails while trying to install futures:

Downloading/unpacking futures==2.2.0 (from harp==0.7.2)
  Downloading futures-2.2.0-py2.py3-none-any.whl
Cleaning up...
Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 290, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 1266, in prepare_files
    req_to_install.extras):
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2462, in requires
    dm = self._dep_map
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2686, in _dep_map
    self.__dep_map = self._compute_dependencies()
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2696, in _compute_dependencies
    current_req = packaging.requirements.Requirement(req)
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/_vendor/packaging/requirements.py", line 94, in __init__
    requirement_string[e.loc:e.loc + 8]))
InvalidRequirement: Invalid requirement, parse error at "'and plat'"

Confirming we're pegged to 20.2.2

easy_install --version
setuptools 20.2.2 from /usr/local/lib/python2.7/dist-packages (Python 2.7)

Pegging setuptools to 20.1.1 allows install to succeed.

ghost commented 8 years ago

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


I'm also unable to reproduce the issue, even with installing setuptools 20.2.1 first and upgrading it to 20.2.2. I even tried installing 20.2.1 with pip and then upgrading to 20.2.2 with setuptools, but ipython still installed without error. This ticket will have to remain closed and resolved until someone can describe a technique to replicate the issue. If the issue is isolated to environments that once had 20.2.1, those should be fairly rare, as setuptools 20.2.1 was live for less than half a day (IIRC).

ghost commented 8 years ago

Original comment by msabramo (Bitbucket: msabramo, GitHub: msabramo):


We were having problems like this too. It seems that the problems might've started with setuptools 20.2.1 and then when we upgraded those virtualenvs to 20.2.2, we still had problems, but then when I rebuilt the virtualenvs with 20.2.2, they seemed to be fine.

I wonder if bits of 20.2.1 get left behind even after an upgrade to 20.2.2.

ghost commented 8 years ago

Original comment by icordasc (Bitbucket: icordasc, GitHub: Unknown):


@kudos @GothAlice I can't reproduce this. In a virtualenv:

~ ❯❯❯ pip install -U setuptools
Collecting setuptools
  Downloading setuptools-20.2.2-py2.py3-none-any.whl (508kB)
    100% |████████████████████████████████| 512kB 617kB/s
Installing collected packages: setuptools
  Found existing installation: setuptools 19.6.2
    Uninstalling setuptools-19.6.2:
      Successfully uninstalled setuptools-19.6.2
Successfully installed setuptools-20.2.2
~ ❯❯❯ pip install ipython
Collecting ipython
  Downloading ipython-4.1.2-py2-none-any.whl (736kB)
    100% |████████████████████████████████| 737kB 453kB/s
Collecting traitlets (from ipython)
  Downloading traitlets-4.1.0-py2.py3-none-any.whl (65kB)
    100% |████████████████████████████████| 69kB 1.2MB/s
Collecting pickleshare (from ipython)
  Downloading pickleshare-0.6-py2.py3-none-any.whl
Collecting simplegeneric>0.8 (from ipython)
  Downloading simplegeneric-0.8.1.zip
Requirement already satisfied (use --upgrade to upgrade): setuptools>=18.5 in ./.test-setuptools/lib/python2.7/site-packages (from ipython)
Collecting decorator (from ipython)
  Using cached decorator-4.0.9-py2.py3-none-any.whl
Collecting gnureadline (from ipython)
  Downloading gnureadline-6.3.3-cp27-none-macosx_10_9_x86_64.whl (132kB)
    100% |████████████████████████████████| 135kB 961kB/s
Collecting appnope (from ipython)
  Downloading appnope-0.1.0-py2.py3-none-any.whl
Collecting pexpect (from ipython)
  Downloading pexpect-4.0.1.tar.gz (143kB)
    100% |████████████████████████████████| 147kB 1.2MB/s
Collecting ipython-genutils (from traitlets->ipython)
  Downloading ipython_genutils-0.1.0-py2.py3-none-any.whl
Collecting path.py>=6.2 (from pickleshare->ipython)
  Downloading path.py-8.1.2-py2.py3-none-any.whl
Collecting ptyprocess>=0.5 (from pexpect->ipython)
  Downloading ptyprocess-0.5.1-py2.py3-none-any.whl
Building wheels for collected packages: simplegeneric, pexpect
  Running setup.py bdist_wheel for simplegeneric ... done
  Stored in directory: /Users/icordasc/Library/Caches/pip/wheels/51/3c/13/2b621669f3ba74b01380aefcc0af0f643bb42360e7248496ed
  Running setup.py bdist_wheel for pexpect ... done
  Stored in directory: /Users/icordasc/Library/Caches/pip/wheels/ea/5b/53/4b65a279e1390ae81febe74f660ce01ef4655c9c1ec9acd9bf
Successfully built simplegeneric pexpect
Installing collected packages: decorator, ipython-genutils, traitlets, path.py, pickleshare, simplegeneric, gnureadline, appnope, ptyprocess, pexpect, ipython
Successfully installed appnope-0.1.0 decorator-4.0.9 gnureadline-6.3.3 ipython-4.1.2 ipython-genutils-0.1.0 path.py-8.1.2 pexpect-4.0.1 pickleshare-0.6 ptyprocess-0.5.1 simplegeneric-0.8.1 traitlets-4.1.0

IPython works just fine. Installing futures works just fine too.

ghost commented 8 years ago

Original comment by GothAlice (Bitbucket: GothAlice, GitHub: Unknown):


Continue to have problems with 20.2.2 in production deployment, against ipython, the futures back-port, and a few other packages. I've been forced to pin <20.2.2 for now.

ghost commented 8 years ago

Original comment by kudos (Bitbucket: kudos, GitHub: kudos):


I'm still seeing this problem with 20.2.2 installing IPython.

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/lib/python3/dist-packages/pip/commands/install.py", line 290, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/usr/lib/python3/dist-packages/pip/req.py", line 1266, in prepare_files
    req_to_install.extras):
  File "/usr/local/lib/python3.4/dist-packages/pkg_resources/__init__.py", line 2462, in requires
    dm = self._dep_map
  File "/usr/local/lib/python3.4/dist-packages/pkg_resources/__init__.py", line 2686, in _dep_map
    self.__dep_map = self._compute_dependencies()
  File "/usr/local/lib/python3.4/dist-packages/pkg_resources/__init__.py", line 2696, in _compute_dependencies
    current_req = packaging.requirements.Requirement(req)
  File "/usr/local/lib/python3.4/dist-packages/pkg_resources/_vendor/packaging/requirements.py", line 94, in __init__
    requirement_string[e.loc:e.loc + 8]))
pkg_resources.extern.packaging.requirements.InvalidRequirement: Invalid requirement, parse error at "'; sys.pl'"
ghost commented 8 years ago

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


@msabramo Yes. 20.2.1 and 20.2 were both removed.

ghost commented 8 years ago

Original comment by msabramo (Bitbucket: msabramo, GitHub: msabramo):


@jaraco I agree that it's probably an environment problem. I was just able to rebuild the virtualenv and have it work. A few people here bumped into this -- I wonder if it happens when upgrading from setuptools 20.2.1 (was this version deleted from PyPI?) to 20.2.2.

ghost commented 8 years ago

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


@msabramo, sorry to hear you're having trouble. There are tests in both setuptools and packaging to catch the reported error, so I'm confident it's fixed, though it's possible there's another edge case that wasn't considered.

I suspect given that you can't readily replicate the issue that it's environmental. Perhaps you have the latest setuptools but not the latest packaging. Or maybe you have setuptools 20.2.2 metadata and 20.2.1 code.

If you find that you're able to replicate a failure with a clean install of setuptools 20.2.2, post back here or file a new ticket (if it's not the same issue).

ghost commented 8 years ago

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


Bump vendored packaging to 16.5. Fixes #502.

ghost commented 8 years ago

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


Issue #503 was marked as a duplicate of this issue.

ghost commented 8 years ago

Original comment by icordasc (Bitbucket: icordasc, GitHub: Unknown):


@jaraco 16.5 was just released with the fix for this.

Thank you @dstufft for releasing that.

ghost commented 8 years ago

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


@stevenk_ When this is resolved upstream, would you either send another pull request or simply let me know when it's ready to re-vendor?

ghost commented 8 years ago

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


Add test capturing expectation that spaces between version specifiers should be allowed. Ref #502.

ghost commented 8 years ago

Original comment by thiefmaster (Bitbucket: thiefmaster, GitHub: thiefmaster):


Thanks!

ghost commented 8 years ago

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


I've pulled Setuptools 20.2.1 from PyPI to alleviate the pressure.

ghost commented 8 years ago

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


Issue #501 was marked as a duplicate of this issue.

ghost commented 8 years ago

Original comment by flox (Bitbucket: flox, GitHub: flox):


.... add paramiko to this list

ghost commented 8 years ago

Original comment by AdamChainz (Bitbucket: AdamChainz, GitHub: AdamChainz):


+1 failing with libfaketime failing on 'python-dateutil >= 1.3, != 2.0',

ghost commented 8 years ago

Original comment by thuandt (Bitbucket: thuandt, GitHub: thuandt):


+1 I faced some problem when install my tools using Requirement

        'click>=3.3, <=5.1',