setup.py imports basket to get at the metadata contained there in, such as author. That init.py also imports base.py. The base.py then requires requests to be imported. Now that's normally fine if you've done an install with dependencies.
Unfortunately on marketplace (and other mozilla sites using pip), we do that with --no-deps, so that we don't get surprised when libraries install things for us at some version.
Sadly that means when we pip install basket client, requests is not installed yet, so we get:
[localhost] out: Using download cache from /tmp/pip-cache/http%3A%2F%2Fpyrepo1.addons.phx1.mozilla.com%2Fbasket-client-0.3.0.tar.gz
[localhost] out: Running setup.py egg_info for package basket-client
[localhost] out: Traceback (most recent call last):
[localhost] out: File "", line 16, in
[localhost] out: File "/data/addons-dev/src/addons-dev.allizom.org/venv/build/basket-client/setup.py", line 3, in
[localhost] out: import basket as distmeta
[localhost] out: File "basket/init.py", line 3, in
[localhost] out: from base import (send_sms, subscribe, unsubscribe, user,
[localhost] out: File "basket/base.py", line 9, in
[localhost] out: import requests
[localhost] out: ImportError: No module named requests
[localhost] out: Complete output from command python setup.py egg_info:
[localhost] out: Traceback (most recent call last):
[localhost] out:
[localhost] out: File "", line 16, in
[localhost] out:
[localhost] out: File "/data/addons-dev/src/addons-dev.allizom.org/venv/build/basket-client/setup.py", line 3, in
[localhost] out:
[localhost] out: import basket as distmeta
[localhost] out:
[localhost] out: File "basket/init.py", line 3, in
[localhost] out:
[localhost] out: from base import (send_sms, subscribe, unsubscribe, user,
[localhost] out:
[localhost] out: File "basket/base.py", line 9, in
[localhost] out:
[localhost] out: import requests
[localhost] out:
[localhost] out: ImportError: No module named requests
[localhost] out:
[localhost] out: ----------------------------------------
[localhost] out: Command python setup.py egg_info failed with error code 1 in /data/addons-dev/src/addons-dev.allizom.org/venv/build/basket-client
[localhost] out: Storing complete log in /root/.pip/pip.log
There's no real reasons requests is needed during the setup, its just an import side effect. If that could be removed that would be swell.