2013-02-17 33 views
7

Inteligentne ludzie,Jak zdobyć urllib3 i wnioski o pracę z jythonem 2.7 beta 1?

Chciałbym użyć modułu niesamowitych zapytań w moim programie jython. Instaluje się i działa dobrze w pythonie, ale nie mogę go zainstalować w jythonie. Próbowałem zarówno Jython 2.7a2 i 2.7b1 na mac i ubuntu i uzyskać te same błędy związane z urllib3.

Pierwszy zainstalowany ez_setup.py jak wspomniano w How can I use jython setup.py install?

Następnie uruchom easy_install od wewnątrz jython wyników bin w wyjątkiem:

NameError: name 'CERT_NONE' is not defined 
gautam-mbp:bin gautam$ ./easy_install requests 
Searching for requests 
Reading http://pypi.python.org/simple/requests/ 
Reading http://python-requests.org 
Reading https://github.com/kennethreitz/requests 
Best match: requests 1.1.0 
Downloading http://pypi.python.org/packages/source/r/requests/requests-1.1.0.tar.gz#md5=a0158815af244c32041a3147ee09abf3 
Processing requests-1.1.0.tar.gz 
Running requests-1.1.0/setup.py -q bdist_egg --dist-dir /var/folders/jf/cb2pc45s7d94hd6sndysvyxw0000gn/T/easy_install-MnOao_/requests-1.1.0/egg-dist-tmp-E2Rkg1 
Traceback (most recent call last): 
    File "./easy_install", line 7, in <module> 
    sys.exit(
    File "/Users/gautam/jython27b1/Lib/site-packages/setuptools-0.6c11-py2.7.egg/setuptools/command/easy_install.py", line 1712, in main 
    File "/Users/gautam/jython27b1/Lib/site-packages/setuptools-0.6c11-py2.7.egg/setuptools/command/easy_install.py", line 1700, in with_ei_usage 
    File "/Users/gautam/jython27b1/Lib/site-packages/setuptools-0.6c11-py2.7.egg/setuptools/command/easy_install.py", line 1712, in <lambda> 
-----------lots of stack trace--------------- 
    File "setup.py", line 6, in <module> 
    File "/var/folders/jf/cb2pc45s7d94hd6sndysvyxw0000gn/T/easy_install-MnOao_/requests-1.1.0/requests/__init__.py", line 52, in <module> 
    File "/var/folders/jf/cb2pc45s7d94hd6sndysvyxw0000gn/T/easy_install-MnOao_/requests-1.1.0/requests/utils.py", line 23, in <module> 
    File "/var/folders/jf/cb2pc45s7d94hd6sndysvyxw0000gn/T/easy_install-MnOao_/requests-1.1.0/requests/compat.py", line 7, in <module> 
    File "/var/folders/jf/cb2pc45s7d94hd6sndysvyxw0000gn/T/easy_install-MnOao_/requests-1.1.0/requests/packages/__init__.py", line 3, in <module> 
    File "/var/folders/jf/cb2pc45s7d94hd6sndysvyxw0000gn/T/easy_install-MnOao_/requests-1.1.0/requests/packages/urllib3/__init__.py", line 16, in <module> 
    File "/var/folders/jf/cb2pc45s7d94hd6sndysvyxw0000gn/T/easy_install-MnOao_/requests-1.1.0/requests/packages/urllib3/connectionpool.py", line 45, in <module> 
    File "/var/folders/jf/cb2pc45s7d94hd6sndysvyxw0000gn/T/easy_install-MnOao_/requests-1.1.0/requests/packages/urllib3/util.py", line 293, in <module> 
NameError: name 'CERT_NONE' is not defined 

Wygląda problemu związanego urllib3 nie pracuje z Jython. Doceń pomoc w otrzymywaniu żądań (i urllib3) do pracy nad jythonem. Ten sam błąd pojawia się również na Ubuntu.

Dzięki Gautam

+0

To jest błąd. :(Po prostu go wypełniłeś, możesz to sprawdzić tutaj: https://github.com/shazow/urllib3/issues/150 Postaram się to naprawić wkrótce Przepraszam za niedogodność – shazow

+0

Dziękuję Gautam –

Odpowiedz

7

Edit: od maja 2015 roku, obecna stabilna wersja requests, 2.7.0, już nie cierpi z oryginalnym błędem w Jython --Aprillion


Błąd jesteś okładka została naprawiona jakiś czas temu w wersjach rozwojowych urllib3 i requests.

Ponieważ nie będzie można go zainstalować, ponieważ spowoduje wysadzenie pip/easy_install z java.lang.RuntimeException: java.lang.RuntimeException: Class file too large!, musisz uruchomić go bezpośrednio z drzewa źródłowego.

Nie można usunąć błędu importu poprzez zastąpienie wszystkich ssl_wrap_socket rzeczy na końcu requests/packages/urllib3/util.py z manekina metody takie jak:

def ssl_wrap_socket(sock, keyfile=None, certfile=None, cert_reqs=None, 
        ca_certs=None, server_hostname=None, 
        ssl_version=None): 
    raise Error('This is not meant to be called') 

(Jeśli SSL jest problemem dla ciebie: jest łamany na w momencie anyways)

Jako że Jython to missing, obsługa idna również musisz usunąć. Przejdź do linii 290 z request/models.py i zastąp 'idna' przez 'utf-8 ".

Więc jeśli nie musisz używać ssl lub idna, te kroki powinny działać.

Followup: Odpowiedni bug ssl w Jython jest śledzone tutaj: http://bugs.jython.org/issue2016

+0

Wypróbuję dzisiaj - czy możesz przesłać mi kilka informacji o tym, jak zainstalować wersję dev urllib3 i żądań? –

+0

Nie potrzebujesz wersji dev. /packages/source/r/requests/requests-1.1.0.tar.gz#md5=a0158815af244c32041a3147ee09abf3), rozpakuj go, a następnie zmodyfikuj pliki util.py i modele, tak jak wyjaśniono w odpowiedzi: Następnie spróbuj użyć go z jython interpreter rozpoczął w katalogu rozpakowanych żądań. Jeśli chcesz go użyć z innego miejsca, musisz dostosować tę ścieżkę pythonów, jest na to dokumentacja. –

+0

To działa! Dziękuję, to jest doskonałe. –

1

Ten problem został rozwiązany - proszę użyć Jython 2.7 beta 4 (lub ostatecznej wersji).

+0

kiedy zostanie zwolniony 2.7 b3? Nie widzę go jeszcze stąd http://www.jython.org/downloads.html – brianray