Kivy: debug, 安卓 adblog| adb log - 图1
© Karobben

由於語法渲染問題而影響閱讀體驗, 請移步博客閱讀~
本文GitPage地址

Adblog cat

A standard adblog catout is adb logcat. But I do not suggest you do this since there is too much unrelated information

If you have are familiar with adb, you may add a filter-args like adb logcat *:W. But this is not the case for Kivy because most of the information is in *:I level.

As a result, pipeline adblog with grep is the best choice which could solve most of your problem. Here is my advice:

  1. # it could cover 99% cases
  2. adb logcat| grep -i python
  3. # it could help you access a more elegant result which cover the most of errors.
  4. adb logcat| grep -w "I python"

adb logcat| grep -i python could access all information containing python.
grep -w "I python" should more focus on the running log of python-android.

Python for Android Ended

This piece of information always one line a heading before the code Python for android ended. So, you can find it very easily with:

  1. adb logcat| grep -B 1 -w "Python for android ended"

ModuleNotFoundError

  1. 04-27 23:19:06.229 25804 25854 I python : [INFO ] [Logger ] Record log in /data/user/0/org.sirfanas.filechooser.filechooser/files/app/.kivy/logs/kivy_21-04-27_3.txt
  2. 04-27 23:19:06.229 25804 25854 I python : [INFO ] [Kivy ] v1.11.1
  3. 04-27 23:19:06.229 25804 25854 I python : [INFO ] [Kivy ] Installed at "/data/user/0/org.sirfanas.filechooser.filechooser/files/app/_python_bundle/site-packages/kivy/__init__.pyc"
  4. 04-27 23:19:06.229 25804 25854 I python : [INFO ] [Python ] v3.7.5 (default, Apr 21 2021, 11:10:26)
  5. 04-27 23:19:06.229 25804 25854 I python : [Clang 8.0.2 (https://android.googlesource.com/toolchain/clang 40173bab62ec7462
  6. 04-27 23:19:06.229 25804 25854 I python : [INFO ] [Python ] Interpreter at "android_python"
  7. 04-27 23:19:06.287 2208 2469 I WindowManager: Removing Window{8e822e1 u0 Splash Screen org.sirfanas.filechooser.filechooser} from AppWindowToken{8ef4121 token=Token{7fb7980 ActivityRecord{8ef4191 u0 org.sirfanas.filechooser.filechooser/org.kivy.android.PythonActivity t13316}}}
  8. 04-27 23:19:06.390 2208 4223 I WindowManager: Animation done in AppWindowToken{8ef4121 token=Token{7fb7980 ActivityRecord{8ef4191 u0 org.sirfanas.filechooser.filechooser/org.kivy.android.PythonActivity t13316}}} isHidden:false hiddenRequested:false
  9. 04-27 23:19:06.587 25804 25854 I python : [INFO ] [Factory ] 184 symbols loaded
  10. 04-27 23:19:06.730 25804 25854 I python : [INFO ] [Image ] Providers: img_tex, img_dds, img_sdl2, img_pil, img_gif (img_ffpyplayer ignored)
  11. 04-27 23:19:06.745 25804 25854 I python : [INFO ] [Text ] Provider: sdl2
  12. 04-27 23:19:06.761 25804 25854 I python : [INFO ] [Window ] Provider: sdl2
  13. 04-27 23:19:06.776 25804 25854 I python : [INFO ] [GL ] Using the "OpenGL ES 2" graphics system
  14. 04-27 23:19:06.777 25804 25854 I python : [INFO ] [GL ] Backend used <sdl2>
  15. 04-27 23:19:06.777 25804 25854 I python : [INFO ] [GL ] OpenGL version <b'OpenGL ES 3.2 v1.r18p0-01rel0.c9f554cb2d312e725c77b822a0503b07'>
  16. 04-27 23:19:06.777 25804 25854 I python : [INFO ] [GL ] OpenGL vendor <b'ARM'>
  17. 04-27 23:19:06.777 25804 25854 I python : [INFO ] [GL ] OpenGL renderer <b'Mali-G76'>
  18. 04-27 23:19:06.777 25804 25854 I python : [INFO ] [GL ] OpenGL parsed version: 3, 2
  19. 04-27 23:19:06.777 25804 25854 I python : [INFO ] [GL ] Texture max size <8192>
  20. 04-27 23:19:06.777 25804 25854 I python : [INFO ] [GL ] Texture max units <16>
  21. 04-27 23:19:06.780 2208 4460 I DebugKeepScreenOn: Acquiring screen wakelock due to Window{888d929 u0 org.sirfanas.filechooser.filechooser/org.kivy.android.PythonActivity}
  22. 04-27 23:19:06.787 25804 25854 I python : [INFO ] [Window ] auto add sdl2 input provider
  23. 04-27 23:19:06.788 25804 25854 I python : [INFO ] [Window ] virtual keyboard not allowed, single mode, not docked
  24. 04-27 23:19:06.848 25804 25854 I python : [INFO ] [Video ] Provider: null(['video_ffmpeg', 'video_ffpyplayer'] ignored)
  25. 04-27 23:19:06.849 25804 25854 I python : Traceback (most recent call last):
  26. 04-27 23:19:06.849 25804 25854 I python : File "/media/ken/Data/Kivy/.buildozer/android/app/main.py", line 64, in <module>
  27. 04-27 23:19:06.849 25804 25854 I python : File "/media/ken/Data/Kivy/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/filechooser/kivy/app.py", line 828, in run
  28. 04-27 23:19:06.849 25804 25854 I python : File "/media/ken/Data/Kivy/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/filechooser/kivy/app.py", line 599, in load_kv
  29. 04-27 23:19:06.849 25804 25854 I python : File "/media/ken/Data/Kivy/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/filechooser/kivy/lang/builder.py", line 301, in load_file
  30. 04-27 23:19:06.849 25804 25854 I python : File "/media/ken/Data/Kivy/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/filechooser/kivy/lang/builder.py", line 405, in load_string
  31. 04-27 23:19:06.850 25804 25854 I python : File "/media/ken/Data/Kivy/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/filechooser/kivy/lang/builder.py", line 659, in _apply_rule
  32. 04-27 23:19:06.850 25804 25854 I python : File "/media/ken/Data/Kivy/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/filechooser/kivy/lang/builder.py", line 659, in _apply_rule
  33. 04-27 23:19:06.850 25804 25854 I python : File "/media/ken/Data/Kivy/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/filechooser/kivy/lang/builder.py", line 616, in _apply_rule
  34. 04-27 23:19:06.850 25804 25854 I python : File "/media/ken/Data/Kivy/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/filechooser/kivy/factory.py", line 142, in __getattr__
  35. 04-27 23:19:06.850 25804 25854 I python : File "/media/ken/Data/Kivy/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/filechooser/kivy/uix/rst.py", line 81, in <module>
  36. <span style="color:red">04-27 23:19:06.850 25804 25854 I python : ModuleNotFoundError: No module named 'docutils'</span>
  37. 04-27 23:19:06.850 25804 25854 I python : Python for android ended.
  38. 04-27 23:19:06.943 2208 2664 W InputDispatcher: channel '888d929 org.sirfanas.filechooser.filechooser/org.kivy.android.PythonActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9
  39. 04-27 23:19:06.943 2208 2664 E InputDispatcher: channel '888d929 org.sirfanas.filechooser.filechooser/org.kivy.android.PythonActivity (server)' ~ Channel is unrecoverably broken and will be disposed!

What you want to know is this: ModuleNotFoundError: No module named 'docutils'

As it’s who below, we can get the info by:

AttributeError

  1. 04-30 16:22:14.236 6326 6417 I python : [INFO ] [Base ] Start application main loop
  2. 04-30 16:22:14.236 6326 6417 I python : [INFO ] [Base ] Leaving application in progress...
  3. 04-30 16:22:14.237 6326 6417 I python : Traceback (most recent call last):
  4. 04-30 16:22:14.237 6326 6417 I python : File "/media/ken/Data/Kivy/.buildozer/android/app/main.py", line 111, in <module>
  5. 04-30 16:22:14.237 6326 6417 I python : File "/media/ken/Data/Kivy/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/filechooser/kivy/app.py", line 855, in run
  6. 04-30 16:22:14.237 6326 6417 I python : File "/media/ken/Data/Kivy/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/filechooser/kivy/base.py", line 504, in runTouchApp
  7. 04-30 16:22:14.237 6326 6417 I python : File "/media/ken/Data/Kivy/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/filechooser/kivy/core/window/window_sdl2.py", line 747, in mainloop
  8. 04-30 16:22:14.237 6326 6417 I python : File "/media/ken/Data/Kivy/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/filechooser/kivy/core/window/window_sdl2.py", line 479, in _mainloop
  9. 04-30 16:22:14.237 6326 6417 I python : File "/media/ken/Data/Kivy/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/filechooser/kivy/base.py", line 339, in idle
  10. 04-30 16:22:14.238 6326 6417 I python : File "/media/ken/Data/Kivy/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/filechooser/kivy/clock.py", line 591, in tick
  11. 04-30 16:22:14.238 6326 6417 I python : File "kivy/_clock.pyx", line 384, in kivy._clock.CyClockBase._process_events
  12. 04-30 16:22:14.238 6326 6417 I python : File "kivy/_clock.pyx", line 414, in kivy._clock.CyClockBase._process_events
  13. 04-30 16:22:14.238 6326 6417 I python : File "kivy/_clock.pyx", line 412, in kivy._clock.CyClockBase._process_events
  14. 04-30 16:22:14.238 6326 6417 I python : File "kivy/_clock.pyx", line 154, in kivy._clock.ClockEvent.tick
  15. 04-30 16:22:14.238 6326 6417 I python : File "kivy/_clock.pyx", line 88, in kivy._clock.ClockEvent.get_callback
  16. 04-30 16:22:14.239 6326 6417 I python : File "/media/ken/Data/Kivy/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/filechooser/kivy/weakmethod.py", line 47, in __call__
  17. 04-30 16:22:14.239 6326 6417 I python : <span style="color:red">AttributeError: 'WebviewLauncher' object has no attribute 'f2'</span>
  18. 04-30 16:22:14.239 6326 6417 I python : Python for android ended.

Check the class WebviewLauncher and figure out what is f2 in it.

Buildozer Error

  1. Non-user install due to --prefix or --target option
  2. Created temporary directory: /tmp/pip-target-nnpo4wye
  3. Created temporary directory: /tmp/pip-ephem-wheel-cache-hjzhdyqg
  4. Created temporary directory: /tmp/pip-req-tracker-nryx6lee
  5. Initialized build tracking at /tmp/pip-req-tracker-nryx6lee
  6. Created build tracker: /tmp/pip-req-tracker-nryx6lee
  7. Entered build tracker: /tmp/pip-req-tracker-nryx6lee
  8. Created temporary directory: /tmp/pip-install-xivbs0bw
  9. Collecting https://github.com/kivymd/kivymd/archive/master.zip (from -r requirements.txt (line 1))
  10. Created temporary directory: /tmp/pip-req-build-6lx7kxss
  11. Created temporary directory: /tmp/pip-unpack-cr7m7azt
  12. Looking up "https://github.com/kivymd/kivymd/archive/master.zip" in the cache
  13. No cache entry available
  14. Starting new HTTPS connection (1): github.com:443
  15. Incremented Retry for (url='/kivymd/kivymd/archive/master.zip'): Retry(total=4, connect=None, read=None, redirect=None, status=None)
  16. WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='github.com', port=443): Read timed out. (read timeout=15)")': /kivymd/kivymd/archive/master.zip
  17. Starting new HTTPS connection (2): github.com:443
  18. Incremented Retry for (url='/kivymd/kivymd/archive/master.zip'): Retry(total=3, connect=None, read=None, redirect=None, status=None)
  19. WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f0c4b98ccd0>, 'Connection to github.com timed out. (connect timeout=15)')': /kivymd/kivymd/archive/master.zip
  20. Starting new HTTPS connection (3): github.com:443
  21. Incremented Retry for (url='/kivymd/kivymd/archive/master.zip'): Retry(total=2, connect=None, read=None, redirect=None, status=None)
  22. WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f0c4b98ce50>, 'Connection to github.com timed out. (connect timeout=15)')': /kivymd/kivymd/archive/master.zip
  23. Starting new HTTPS connection (4): github.com:443
  24. Incremented Retry for (url='/kivymd/kivymd/archive/master.zip'): Retry(total=1, connect=None, read=None, redirect=None, status=None)
  25. WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))': /kivymd/kivymd/archive/master.zip
  26. Starting new HTTPS connection (5): github.com:443
  27. Incremented Retry for (url='/kivymd/kivymd/archive/master.zip'): Retry(total=0, connect=None, read=None, redirect=None, status=None)
  28. WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f0c4b722190>, 'Connection to github.com timed out. (connect timeout=15)')': /kivymd/kivymd/archive/master.zip
  29. Starting new HTTPS connection (6): github.com:443
  30. ERROR: Could not install packages due to an OSError.
  31. Traceback (most recent call last):
  32. File "/media/ken/Data/Kivy_env/Kivy2Py3.8.1MD0.104.2.dev0/.buildozer/android/platform/build-armeabi-v7a/build/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/connection.py", line 169, in _new_conn
  33. conn = connection.create_connection(
  34. File "/media/ken/Data/Kivy_env/Kivy2Py3.8.1MD0.104.2.dev0/.buildozer/android/platform/build-armeabi-v7a/build/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/connection.py", line 96, in create_connection
  35. raise err
  36. File "/media/ken/Data/Kivy_env/Kivy2Py3.8.1MD0.104.2.dev0/.buildozer/android/platform/build-armeabi-v7a/build/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/util/connection.py", line 86, in create_connection
  37. sock.connect(sa)
  38. socket.timeout: timed out
  39. During handling of the above exception, another exception occurred:

Key error: Starting new HTTPS connection (5): github.com:443
Reason: Github didn’t response.
Resolution: Try builder again or connect your terminal to VPN.

Errors

requests
Found by adb logcat| grep -i python
Resolution:

  1. requirements = openssl, requests, Urllib3, chardet, certifi, idna
  1. 05-09 19:24:20.139 23571 23629 I python : File "kivy/_event.pyx", line 709, in kivy._event.EventDispatcher.dispatch
  2. 05-09 19:24:20.140 23571 23629 I python : File "/media/ken/Data/Kivy_env/Kivy2Py3.8.1MD0.104.2.dev0/.buildozer/android/app/libWidget/Seq.py", line 25, in align
  3. 05-09 19:24:20.141 23571 23629 I python : File "/media/ken/Data/Kivy_env/Kivy2Py3.8.1MD0.104.2.dev0/.buildozer/android/app/bin/clustalo.py", line 35, in <module>
  4. 05-09 19:24:20.141 23571 23629 I python : ModuleNotFoundError: No module named 'requests'
  5. 05-09 19:24:20.141 23571 23629 I python : Python for android ended.
  1. def fasta_read(FA):
  2. fasta = {}
  3. with open("clusttmp/result.aln-fasta.fasta") as file_one:
  4. for line in file_one:
  5. line = line.strip()
  6. if not line:
  7. continue
  8. if line.startswith(">"):
  9. print(line)
  10. active_sequence_name = line[1:]
  11. if active_sequence_name not in fasta:
  12. fasta[active_sequence_name] = []
  13. continue
  14. sequence = line
  15. fasta[active_sequence_name].append(sequence)
  16. print(fasta)
  17. return fasta
  18. from collections import defaultdict #this will make your life simpler
  19. f = open("clusttmp/result.aln-fasta.fasta",'r')
  20. list=defaultdict(str)
  21. name = ''
  22. for line in f:
  23. #if your line starts with a > then it is the name of the following sequence
  24. if line.startswith('>'):
  25. name = line[1:-1]
  26. continue #this means skips to the next line
  27. #This code is only executed if it is a sequence of bases and not a name.
  28. list[name]+=line.strip()
  29. d = {}
  30. with open("clusttmp/result.aln-fasta.fasta") as f:
  31. for line in f:
  32. if len(line) > 1:
  33. if '%Labelinf' in line:
  34. key = line.strip()
  35. d[key] = ""
  36. else:
  37. d[key] += line.strip() + "+"
  38. d = {key: d[key][:-1] for key in d}
  39. print d

Enjoy~

本文由Python腳本GitHub/語雀自動更新

由於語法渲染問題而影響閱讀體驗, 請移步博客閱讀~
本文GitPage地址

GitHub: Karobben
Blog:Karobben
BiliBili:史上最不正經的生物狗