UrlRequest错误(名称'HTTPSConnection'未定义)kivy
问题描述:
嗨!我有一个在kivy和python3上编写的现成项目。这个程序 适用于所有桌面操作系统(Windows,Linux,MacOS),但 编译成.apk文件后,UrlRequest不适用于我。我在 刚刚没有做,在建筑师;UrlRequest错误(名称'HTTPSConnection'未定义)kivy
-- requirements = pyopenssl,openssl,docutils,android,python3crystax,kivy
和
-- android.permissions = INTERNET, ACCESS_NETWORK_STATE
在Android安装.apk文件,并按下按钮 刮网站的页面后,PROGRAMM产生一个错误
**name 'HTTPSConnection' is not defined**
这与的URLRequest代码的一部分:
def get_html(self, link):
try:
from kivy.network.urlrequest import UrlRequest
if isinstance(link, bytes):
link = link.decode('utf-8')
reg = UrlRequest(link, debug=True,
on_success=self.suc, on_error=self.err)
while not reg.is_finished:
sleep(0.5)
Clock.tick()
except HTTPError:
pass
def suc(self, reg, result):
self.add_widget(Label(
text=str(result), font_size='15sp', color=(0, 0, 0, 1)
))
def err(self, reg, error):
class Error(App):
def build(self):
win_report = BugReporter(txt_report=str(error))
return win_report
Error().run()
在可变(链接)插入从一个字典的链接。
dict_links = dict({
"userful_programs": "https://pcompstart.com/?view=cat&category=1",
"advice_on_computer": "https://pcompstart.com/?view=cat&category=2",
"user_windows": "https://pcompstart.com/?view=cat&category=3",
"articles_in_theme": "https://pcompstart.com/?view=cat&category=4",
"popular_program": "https://pcompstart.com/?view=cat&category=5",
"other": "https://pcompstart.com/?view=cat&category=6"})
我buildozer.spec与LOG_LEVEL = 2,连接在 此链接谢谢!
或者,如果在同一个文件,我将执行 -
from http.client import HTTPSConnection
然后在Android编译后,我得到的错误 -
ImportError: cannot import name 'HTTPSConnection'
还是我将执行 -
import ssl
然后在Android编译后,我得到的错误 -
ImportError: No module named '_ssl'
可能的kivy编译没有SSL支持。这是错误还是我错了?
答
不知道这是否会有所帮助,我是新手,但最近几天我经历了非常相似的考验。
实质上,我一直在用简单的HTTPS请求挣扎。我尝试了所有可能的库,例如urllib,urllib2,请求和kivy的UrlRequest,但没有运气。起初,我试过python3(和你一样),然后切换到python2,因为它似乎产生较少的错误一般(不知道这是否实际上是真的)。
最后我得到了同样的错误“HTTPSconnection not defined”,尝试了数百件事情,并最终将“httplib2”置入要求(buildozer.spec)中,并最终完成了相同的操作就像在桌面上一样。编译httplib时出现了一些错误(我已经阅读过编码方面的一些问题),但无论如何编译和工作。
我buildozer.spec重要的线路有:
requirements = kivy, android, openssl, pyopenssl, httplib2
pyopenssl是多余的我猜
android.permissions = INTERNET, ACCESS_NETWORK_STATE
我main.py进口测试程序:
from kivy.app import App
from kivy.uix.label import Label
from kivy.network.urlrequest import UrlRequest
希望这帮助,祝你好运