2017-11-03 107 views
5
Collecting rsa==3.1.1 (from -r /racetrack/.requirements.txt (line 41)) 
eval (python -m virtualfish) 
    Downloading rsa-3.1.1.tar.gz 
    Complete output from command python setup.py egg_info: 
    Downloading http://pypi.python.org/packages/source/d/distribute/distribute-0.6.10.tar.gz 
    Traceback (most recent call last):   
     File "/usr/lib/python2.7/urllib2.py", line 558, in http_error_default 
     raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) 
    urllib2.HTTPError: HTTP Error 403: SSL is required 

Odpowiedz

12

Rozwiązanie: uaktualnij do najnowszej wersji biblioteki.

Wszystko zaczyna się tutaj, nagle (w październiku 2017 r.) Zespół Distutils zdecydował się wycofać wsparcie dla żądań innych niż https bez obawy o złamanie wstecznej kompatybilności wcześniejszych wersji wielu bibliotek Pythona. Trochę nieprofesjonalny, ale hej to świat Pythona.

Więc tutaj jest poprawka, po prostu przejść do najnowszej wersji biblioteki (rsa==3.4.2 w moim przypadku) na cokolwiek biblioteki (nltk==3.2.5 etc)

Alternatywne rozwiązanie: Fork (lub lokalnie skopiować) Wersja repo & modyfikować http URL w https

Niemniej jednak należy zwrócić uwagę, czy robisz to przy zachowaniu innego projektu, ponieważ zależność, którą aktualizujesz może nie być zgodna z oryginalnej biblioteki autor miał przeznaczone, na przykład w moim kontekście rsa został użyty w innej bibliotece jako zależność. Tak więc rozwiązaniem było uaktualnienie biblioteki nadrzędnej, aby problem ten został automatycznie rozwiązany.

PS: Aby uniknąć nieporozumień, podczas budowania requirements.txt należy wprowadzać tylko te biblioteki, których naprawdę używasz, a nie ich & ich zależności. Pip automatycznie je rozwiąże. (DRY)

+1

Informacja o wydaniu Distutils (październik 2017): https://mail.python.org/pipermail/distutils-sig/2017- October/031714.html – nehemiah