galaxyproject / galaxy

Data intensive science for everyone.
https://galaxyproject.org
Other
1.38k stars 999 forks source link

pip requirements - ptyprocess 0.5 not supported on Python 2.6 #1035

Closed peterjc closed 7 years ago

peterjc commented 8 years ago

As part of the move from eggs to wheels for the Python dependencies, Galaxy now has a requirements.txt file which can be used with pip.

Galaxy still supports Python 2.6, so this should work:

$ pip --version
pip 7.1.2 from /usr/lib/python2.6/site-packages (python 2.6)
$ pip install --extra-index-url http://wheels.galaxyproject.org/simple/ --trusted-host wheels.galaxyproject.org -r requirements.txt
Collecting http://svgfig.googlecode.com/files/svgfig-1.1.6.tgz (from -r requirements.txt (line 38))
  Downloading http://svgfig.googlecode.com/files/svgfig-1.1.6.tgz
Collecting Paste (from -r requirements.txt (line 1))
/usr/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
  Using cached Paste-2.0.2-py2-none-any.whl
Collecting PasteDeploy (from -r requirements.txt (line 2))
  Using cached PasteDeploy-1.5.2-py2.py3-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): docutils in /usr/lib/python2.6/site-packages (from -r requirements.txt (line 3))
Collecting wchartype (from -r requirements.txt (line 4))
  Downloading https://wheels.galaxyproject.org/packages/wchartype-0.1-py2-none-any.whl
Collecting pexpect (from -r requirements.txt (line 5))
  Using cached pexpect-4.0.1.tar.gz
Collecting amqp (from -r requirements.txt (line 6))
  Using cached amqp-1.4.7.tar.gz
Collecting repoze.lru (from -r requirements.txt (line 7))
  Downloading https://wheels.galaxyproject.org/packages/repoze.lru-0.6-py2-none-any.whl
Collecting Routes (from -r requirements.txt (line 8))
  Using cached Routes-2.2-py2-none-any.whl
Collecting WebOb (from -r requirements.txt (line 9))
  Using cached WebOb-1.5.1-py2.py3-none-any.whl
Collecting SQLAlchemy (from -r requirements.txt (line 10))
  Using cached SQLAlchemy-1.0.9.tar.gz
Collecting Cheetah (from -r requirements.txt (line 11))
  Using cached Cheetah-2.4.4.tar.gz
Collecting pycrypto (from -r requirements.txt (line 12))
  Using cached pycrypto-2.6.1.tar.gz
Requirement already satisfied (use --upgrade to upgrade): MarkupSafe in /usr/lib/python2.6/site-packages/MarkupSafe-0.23-py2.6-linux-x86_64.egg (from -r requirements.txt (line 13))
Collecting WebHelpers (from -r requirements.txt (line 14))
  Downloading https://wheels.galaxyproject.org/packages/WebHelpers-1.3-py2-none-any.whl (149kB)
    100% |████████████████████████████████| 151kB 354kB/s 
Collecting anyjson (from -r requirements.txt (line 15))
  Downloading https://wheels.galaxyproject.org/packages/anyjson-0.3.3-py2-none-any.whl
Collecting kombu (from -r requirements.txt (line 16))
  Using cached kombu-3.0.29-py2.py3-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): numpy in /usr/lib64/python2.6/site-packages (from -r requirements.txt (line 17))
Requirement already satisfied (use --upgrade to upgrade): bx-python in /usr/lib/python2.6/site-packages/bx_python-0.7.1-py2.6-linux-x86_64.egg (from -r requirements.txt (line 18))
Collecting pysam (from -r requirements.txt (line 19))
  Downloading https://wheels.galaxyproject.org/packages/pysam-0.8.3+gx1.tar.gz (1.5MB)
    100% |████████████████████████████████| 1.5MB 22.8MB/s 
Collecting Mako (from -r requirements.txt (line 20))
  Using cached Mako-1.0.3.tar.gz
Requirement already satisfied (use --upgrade to upgrade): PyYAML in /usr/lib/python2.6/site-packages/PyYAML-3.11-py2.6-linux-x86_64.egg (from -r requirements.txt (line 21))
Collecting mercurial (from -r requirements.txt (line 22))
  Using cached mercurial-3.6.tar.gz
Collecting pytz (from -r requirements.txt (line 23))
  Using cached pytz-2015.7-py2.py3-none-any.whl
Collecting Babel (from -r requirements.txt (line 24))
  Using cached Babel-2.1.1-py2.py3-none-any.whl
Collecting decorator (from -r requirements.txt (line 25))
  Using cached decorator-4.0.4-py2.py3-none-any.whl
Collecting Tempita (from -r requirements.txt (line 26))
  Using cached Tempita-0.5.2.tar.gz
Collecting sqlalchemy-migrate (from -r requirements.txt (line 27))
  Using cached sqlalchemy_migrate-0.10.0-py2-none-any.whl
Collecting Beaker (from -r requirements.txt (line 28))
  Downloading https://wheels.galaxyproject.org/packages/Beaker-1.7.0-py2-none-any.whl (44kB)
    100% |████████████████████████████████| 45kB 17.3MB/s 
Collecting Whoosh<2.5 (from -r requirements.txt (line 29))
  Downloading https://wheels.galaxyproject.org/packages/Whoosh-2.4.1+gx1-py2-none-any.whl (377kB)
    100% |████████████████████████████████| 380kB 8.7MB/s 
Collecting paramiko (from -r requirements.txt (line 30))
  Using cached paramiko-1.16.0-py2.py3-none-any.whl
Collecting ssh (from -r requirements.txt (line 31))
  Using cached ssh-1.8.0.tar.gz
Collecting Fabric (from -r requirements.txt (line 32))
  Using cached Fabric-1.10.2-py2-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): boto in /usr/lib/python2.6/site-packages/boto-2.38.0-py2.6.egg (from -r requirements.txt (line 33))
Collecting simplejson (from -r requirements.txt (line 34))
  Using cached simplejson-3.8.1.tar.gz
Requirement already satisfied (use --upgrade to upgrade): bioblend in /usr/lib/python2.6/site-packages/bioblend-0.6.0-py2.6.egg (from -r requirements.txt (line 35))
Collecting Parsley (from -r requirements.txt (line 36))
  Using cached Parsley-1.3-py2.py3-none-any.whl
Collecting WebError (from -r requirements.txt (line 37))
  Using cached WebError-0.11-py2-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): six in /usr/lib/python2.6/site-packages/six-1.6.1-py2.6.egg (from Paste->-r requirements.txt (line 1))
Collecting ptyprocess>=0.5 (from pexpect->-r requirements.txt (line 5))
  Using cached ptyprocess-0.5.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 20, in <module>
      File "/tmp/pip-build-JviV5L/ptyprocess/setup.py", line 10, in <module>
        "Only python 2.7 and later is supported by ptyprocess.")
    AssertionError: Only python 2.7 and later is supported by ptyprocess.

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-JviV5L/ptyprocess

The dependency on pexpect (no version set) in turn requires ptyprocess,

$ pip install --extra-index-url http://wheels.galaxyproject.org/simple/ --trusted-host wheels.galaxyproject.org pexpect
Collecting pexpect
/usr/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
  Using cached pexpect-4.0.1.tar.gz
Collecting ptyprocess>=0.5 (from pexpect)
  Using cached ptyprocess-0.5.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 20, in <module>
      File "/tmp/pip-build-fSOXKL/ptyprocess/setup.py", line 10, in <module>
        "Only python 2.7 and later is supported by ptyprocess.")
    AssertionError: Only python 2.7 and later is supported by ptyprocess.

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-fSOXKL/ptyprocess

Or using just PyPI:

$ pip install pexpect
Collecting pexpect
  Using cached pexpect-4.0.1.tar.gz
Collecting ptyprocess>=0.5 (from pexpect)
  Using cached ptyprocess-0.5.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 20, in <module>
      File "/tmp/pip-build-TnD1Cd/ptyprocess/setup.py", line 10, in <module>
        "Only python 2.7 and later is supported by ptyprocess.")
    AssertionError: Only python 2.7 and later is supported by ptyprocess.

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-TnD1Cd/ptyprocess

This looks to be a new issue with ptyprocess 0.5, using 0.4 should be OK but then also need to explicitly ask for an older pexpect?

$ sudo pip install ptyprocess==0.4
$ sudo pip install pexpect==3.3

Then:

$ pip install --extra-index-url http://wheels.galaxyproject.org/simple/ --trusted-host wheels.galaxyproject.org -r requirements.txt 

...
  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for sqlparse
Failed to build amqp SQLAlchemy Cheetah pycrypto pysam Mako mercurial Tempita ssh simplejson SVGFig sqlparse
Installing collected packages: Paste, PasteDeploy, wchartype, amqp, repoze.lru, Routes, WebOb, SQLAlchemy, Markdown, Cheetah, pycrypto, WebHelpers, anyjson, importlib, kombu, pysam, Mako, mercurial, pytz, Babel, decorator, Tempita, pbr, sqlparse, sqlalchemy-migrate, Beaker, Whoosh, ecdsa, paramiko, ssh, Fabric, simplejson, Parsley, Pygments, WebError, SVGFig
...

(Permission denied)

I do still see lots of error: invalid command 'bdist_wheel' suggesting a dozen other problems, but the initial problem from pexpect has gone away by installing an older version.

jmchilton commented 7 years ago

Support for Python 2.6 has been dropped so I'm closing this - I hope that is okay.