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?
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.
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:
The dependency on
pexpect
(no version set) in turn requiresptyprocess
,Or using just PyPI:
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?
Then:
(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.