Bug 920969 - [abrt] python-setuptools-0.6.28-3.fc18: setup.py:9:<module>: File "/tmp/easy_install-rB2uCY/pyparsing-2.0.0/pyparsing.py", line 629
Summary: [abrt] python-setuptools-0.6.28-3.fc18: setup.py:9:<module>: File "/tmp/easy...
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: python-setuptools
Version: 18
Hardware: x86_64
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Toshio Ernie Kuratomi
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard: abrt_hash:ce363494ec0f56ec8d6b18aa88a...
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-03-13 08:26 UTC by Jens Timmerman
Modified: 2013-03-13 15:12 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2013-03-13 15:12:11 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
File: backtrace (9.60 KB, text/plain)
2013-03-13 08:26 UTC, Jens Timmerman
no flags Details
File: core_backtrace (2.54 KB, text/plain)
2013-03-13 08:27 UTC, Jens Timmerman
no flags Details
File: environ (3.10 KB, text/plain)
2013-03-13 08:27 UTC, Jens Timmerman
no flags Details

Description Jens Timmerman 2013-03-13 08:26:45 UTC
Description of problem:
This occurs after running
easy_install --user pyparsing

[jens@ca60c173 ~]$ easy_install --user pyparsing
Searching for pyparsing
Reading http://pypi.python.org/simple/pyparsing/
Reading http://pyparsing.wikispaces.com/
Reading http://sourceforge.net/project/showfiles.php?group_id=97203
Reading http://pyparsing.sourceforge.net/
Reading http://sourceforge.net/projects/pyparsing
Best match: pyparsing 2.0.0
Downloading http://pypi.python.org/packages/source/p/pyparsing/pyparsing-2.0.0.zip#md5=f9bc56d9f6c977085001db49a63d7bb9
Processing pyparsing-2.0.0.zip
Writing /tmp/easy_install-p_yqKo/pyparsing-2.0.0/setup.cfg
Running pyparsing-2.0.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-p_yqKo/pyparsing-2.0.0/egg-dist-tmp-JkmIzA
Traceback (most recent call last):
  File "/usr/bin/easy_install", line 9, in <module>
    load_entry_point('distribute==0.6.28', 'console_scripts', 'easy_install')()
  File "/usr/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1929, in main
    with_ei_usage(lambda:
  File "/usr/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1910, in with_ei_usage
    return f()
  File "/usr/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1933, in <lambda>
    distclass=DistributionWithoutHelpCommands, **kw
  File "/usr/lib64/python2.7/distutils/core.py", line 152, in setup
    dist.run_commands()
  File "/usr/lib64/python2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "/usr/lib64/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "/usr/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 358, in run
    self.easy_install(spec, not self.no_deps)
  File "/usr/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 598, in easy_install
    return self.install_item(spec, dist.location, tmpdir, deps)
  File "/usr/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 628, in install_item
    dists = self.install_eggs(spec, download, tmpdir)
  File "/usr/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 823, in install_eggs
    return self.build_and_install(setup_script, setup_base)
  File "/usr/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1103, in build_and_install
    self.run_setup(setup_script, setup_base, args)
  File "/usr/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1089, in run_setup
    run_setup(setup_script, args)
  File "/usr/lib/python2.7/site-packages/setuptools/sandbox.py", line 30, in run_setup
    lambda: execfile(
  File "/usr/lib/python2.7/site-packages/setuptools/sandbox.py", line 78, in run
    return func()
  File "/usr/lib/python2.7/site-packages/setuptools/sandbox.py", line 32, in <lambda>
    {'__file__':setup_script, '__name__':'__main__'}
  File "setup.py", line 9, in <module>
  File "/tmp/easy_install-p_yqKo/pyparsing-2.0.0/pyparsing.py", line 629
    nonlocal limit,foundArity
                 ^
SyntaxError: invalid syntax

Version-Release number of selected component:
python-setuptools-0.6.28-3.fc18

Additional info:
cmdline:        /usr/bin/python /usr/bin/easy_install --user python-graph-core python-graph-dot
dso_list:       python-libs-2.7.3-13.fc18.x86_64
executable:     /usr/bin/easy_install
kernel:         3.8.1-201.fc18.x86_64
uid:            1000

Comment 1 Jens Timmerman 2013-03-13 08:26:58 UTC
Created attachment 709391 [details]
File: backtrace

Comment 2 Jens Timmerman 2013-03-13 08:27:00 UTC
Created attachment 709392 [details]
File: core_backtrace

Comment 3 Jens Timmerman 2013-03-13 08:27:03 UTC
Created attachment 709393 [details]
File: environ

Comment 4 Toshio Ernie Kuratomi 2013-03-13 15:12:11 UTC
If I'm reading the backtrace correctly, this is a bug in upstream pyparsing-2.0.  It's also a broken architecture in easy_install but that's something that would have to be taken up with the upstream distribute and setuptools projects.

easy_install needs to execute the python code in the package's setup.py in order to find out the metainformation about the package.  It needs the metainformation to find things such as the depended upon upstream packages that it will need to download next.  This can't simply be parsed out due to setup.py being able to set things using the full range of python.  For instance, in this case it is setting the version with the help of:

        from pyparsing import __version__ as pyparsing_version

This means that if there's a severe enough bug in the upstream package being installed, easy_install will error out when it tries to determine the dependencies for that package.

A workaround that may be suitable for you is to be more explicit about the version you want so that the broken pyparsing-2.0 isn't downloaded.  Like this:

easy_install -U --user 'pyparsing < 2.0'

which will install 1.5.7 instead.


Note You need to log in before you can comment on or make changes to this bug.