gpt4 book ai didi

jython - 如何使用 jython 2.7 beta 1 获取 urllib3 和请求?

转载 作者:行者123 更新时间:2023-12-04 14:47:01 29 4
gpt4 key购买 nike

聪明的人,

我想在我的 jython 程序中使用很棒的请求模块。它在 python 中安装和运行得很好,但我无法在 jython 中安装它。我已经在 mac 和 ubuntu 上尝试了 Jython 2.7a2 和 2.7b1,并得到了与 urllib3 相关的相同错误。

首先安装 ez_setup.py,如 How can I use jython setup.py install? 中所述

然后从 jython bin 目录中运行 easy_install 会导致异常:

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

看起来与 urllib3 相关的问题不适用于 jython。感谢您在获取请求(和 urllib3 )以处理 jython 方面的帮助。同样的错误也出现在 ubuntu 上。

谢谢
高塔姆

最佳答案

编辑 :截至 2015 年 5 月,requests, 2.7.0 的当前稳定版本,不再遭受 Jython 中的原始错误 --Aprillion

您面临的错误已在 urllib3 的开发版本中修复了一段时间。和 requests .

因为您将无法安装它,因为它会用 java.lang.RuntimeException: java.lang.RuntimeException: Class file too large! 炸毁 pip/easy_install您必须直接从源代码树中运行它。

在那里,您可以通过替换所有 ssl_wrap_socket 来修复导入错误。 requests/packages/urllib3/util.py 末尾的东西使用如下虚拟方法:

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')

(如果您担心 ssl 支持:它目前已损坏 anyways )

因为 jython 是 missing支持 idna你也必须删除它。
转到 request/models.py 的第 290 行并替换 'idna'通过 'utf-8 '。

因此,如果您不需要使用 ssl 或 idna,这些步骤应该可以工作。

跟进:
此处跟踪 jython 中的相关 ssl 错误: http://bugs.jython.org/issue2016

关于jython - 如何使用 jython 2.7 beta 1 获取 urllib3 和请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14919557/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com