Python 为什么Kivy应用程序在使用paramiko模块时会崩溃?
我有一个使用paramiko的应用程序,应用程序本身运行良好,但启动时会崩溃,我知道它在paramiko模块中。我已将main.py文件旁边和黑名单文件旁边放在pythonfordroid/bootstraps/sdl2/build文件夹中/ 我的等级库文件的一部分:Python 为什么Kivy应用程序在使用paramiko模块时会崩溃?,python,kivy,paramiko,bcrypt,buildozer,Python,Kivy,Paramiko,Bcrypt,Buildozer,我有一个使用paramiko的应用程序,应用程序本身运行良好,但启动时会崩溃,我知道它在paramiko模块中。我已将main.py文件旁边和黑名单文件旁边放在pythonfordroid/bootstraps/sdl2/build文件夹中/ 我的等级库文件的一部分: source.include_exts = py,png,jpg,kv,atlas requirements = kivy,kivymd,boto3,botocore,openssl,pyjnius,ecdsa,bcrypt,cr
source.include_exts = py,png,jpg,kv,atlas
requirements = kivy,kivymd,boto3,botocore,openssl,pyjnius,ecdsa,bcrypt,cryptography,paramiko, android
osx.python_version = 3
osx.kivy_version = 1.10.1
android.permissions = INTERNET, ACCESS_NETWORK_STATE
android.whitelist_src = whitelist.txt
日志文件的一部分(我认为这会导致应用程序关闭)
我将buildozer更新为1.2.0版,注释掉了这些行
p4a.source\u dir=/home/kivy/Repos/python for android/
android.ndk\u path
android.sdk\u path
,安装了python 3.8,在终端buildozer android clean
中完成了这个命令,并修剪了这行requirements=kivy,kivymd、boto3、botocore、openssl、pyjnius、ecdsa、bcrypt、密码学、paramiko、dateutil、urllib3、jmespath、PyNaCl、android
看起来bcrypt配方有问题。没有明显的解决方案,这可能是一个简单的问题,也可能是复杂的问题,具体取决于细节。我只是在寻找一种使用paramiko运行应用程序的方法,可能使用一种不明显的解决方案。当我说没有明显的解决方案时,我的意思是不太可能有人能够直接告诉你该怎么做,您需要了解发生了什么并进行调试。你可以通过kivy discord频道获得帮助。我认为这可能会被视为无效关闭。这没有提供足够的信息(需要buildozer.spec
和构建日志。问题在不一致的情况下得到了解决,原因是用户重写了指向其本地(过时)存储库的p4a.source\u dir`。
06-04 16:31:49.640 21791 21824 I python : Traceback (most recent call last):
06-04 16:31:49.640 21791 21824 I python : File "/home/kivy/Desktop/touchtracer2/.buildozer/android/app/main.py", line 5, in <module>
06-04 16:31:49.641 21791 21824 I python : File "/home/kivy/Desktop/touchtracer2/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/paramiko/__init__.py", line 22, in <module>
06-04 16:31:49.641 21791 21824 I python : File "/home/kivy/Desktop/touchtracer2/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/paramiko/transport.py", line 89, in <module>
06-04 16:31:49.642 21791 21824 I python : File "/home/kivy/Desktop/touchtracer2/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/paramiko/dsskey.py", line 37, in <module>
06-04 16:31:49.643 21791 21824 I python : File "/home/kivy/Desktop/touchtracer2/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/paramiko/pkey.py", line 31, in <module>
06-04 16:31:49.644 21791 21824 I python : File "/home/kivy/Desktop/touchtracer2/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/bcrypt/__init__.py", line 25, in <module>
06-04 16:31:49.644 21791 21824 I python : ImportError: dlopen failed: "/data/data/org.test.myapp/files/app/_python_bundle/site-packages/bcrypt/_bcrypt.so" is 64-bit instead of 32-bit
06-04 16:31:49.644 21791 21824 I python : Python for android ended.
from kivy.lang import Builder
from kivymd.app import MDApp
import boto3
import io
import paramiko
KV = '''
Screen:
Button:
id: button
text: "Start"
font_size: "18sp"
on_release: app.start()
'''
class MainApp(MDApp):
def build(self):
self.theme_cls.primary_palette = "Green"
return Builder.load_string(KV)
def start(self):
print('1')
MainApp().run()