The urlgrabber package has a dependency on pycurl, and it seems it cannot be installed in one go using pip install -r:
pip install -r
$ pip install -r requirements.txt Downloading/unpacking PyYAML==3.10 (from -r requirements.txt (line 1)) Downloading PyYAML-3.10.tar.gz (241kB): 241kB downloaded Running setup.py egg_info for package PyYAML Downloading/unpacking dingus==0.3.4 (from -r requirements.txt (line 2)) Downloading dingus-0.3.4.tar.gz Running setup.py egg_info for package dingus Downloading/unpacking py==1.4.18 (from -r requirements.txt (line 3)) Downloading py-1.4.18.tar.gz (190kB): 190kB downloaded Running setup.py egg_info for package py Downloading/unpacking pyaml==13.07.1 (from -r requirements.txt (line 4)) Downloading pyaml-13.07.1.tar.gz Running setup.py egg_info for package pyaml Downloading/unpacking pycurl==7.19.0.2 (from -r requirements.txt (line 5)) Downloading pycurl-7.19.0.2.tar.gz (89kB): 89kB downloaded Running setup.py egg_info for package pycurl Using curl-config (libcurl 7.32.0) Downloading/unpacking pytest==2.4.2 (from -r requirements.txt (line 6)) Downloading pytest-2.4.2.tar.gz (553kB): 553kB downloaded Running setup.py egg_info for package pytest Downloading/unpacking urlgrabber==3.9.1 (from -r requirements2.txt (line 1)) Downloading urlgrabber-3.9.1.tar.gz (72kB): 72kB downloaded Running setup.py egg_info for package urlgrabber Traceback (most recent call last): File "<string>", line 16, in <module> File "/home/kparal/devel/taskotron/env_taskotron/build/urlgrabber/setup.py", line 3, in <module> import urlgrabber as _urlgrabber File "urlgrabber/__init__.py", line 54, in <module> from grabber import urlgrab, urlopen, urlread File "urlgrabber/grabber.py", line 427, in <module> import pycurl ImportError: No module named pycurl Complete output from command python setup.py egg_info: Traceback (most recent call last): File "<string>", line 16, in <module> File "/home/kparal/devel/taskotron/env_taskotron/build/urlgrabber/setup.py", line 3, in <module> import urlgrabber as _urlgrabber File "urlgrabber/__init__.py", line 54, in <module> from grabber import urlgrab, urlopen, urlread File "urlgrabber/grabber.py", line 427, in <module> import pycurl ImportError: No module named pycurl ---------------------------------------- Cleaning up... Command python setup.py egg_info failed with error code 1 in /home/kparal/devel/taskotron/env_taskotron/build/urlgrabber Storing complete log in /home/kparal/.pip/pip.log
The solution is: 1. Provide two requirements.txt files and install them consecutively. Or we can at least mention it in the README. 2. Ask urlgrabber developers to add dependency on pycurl to the package. pip should then handle it correctly, hopefully (I'm not really sure).
Let's do both, for the moment.
This ticket had assigned some Differential requests: D2
I have reported this issue against urlgrabber here: https://bugzilla.redhat.com/show_bug.cgi?id=1057150
This isn't a problem with urlgrabber - it's a problem with pip, PYPI and pycurl.
urlgrabber requires pycurl, pycurl doesn't like to be built in the virtualenv and when it fails to build ssl support, urlgrabber installation fails.
I see this as an extension of #74 and I suspect that the best way to fix this going forward is to migrate to requests and stop using urlgrabber.
The underlying difficulty in these tasks are why I think they're high priority. However, fixing the documentation for a snag-less installation would mitigate the high priority issues here and once that's taken care of, they can either be closed or lowered in priority
Fixed in D2. Let's use system urlgrabber package. We can revert back to pypi version once the package dependencies are fixed.
Login to comment on this ticket.