Python с Flexx не может импортировать имя ‘encodestring’ из ‘base64’

#python #user-interface

#python #пользовательский интерфейс

Вопрос:

Я хочу создать графический интерфейс с помощью Python, и Flexx кажется хорошим фреймворком, поэтому я перешел к документации и начал учебник там. Я скопировал код из первого примера:

 from flexx import flx

class Example(flx.Widget):

   def init(self):
       flx.Button(text='hello')
       flx.Button(text='world')
 

При запуске этого кода я получаю сообщение об ошибке

 File "C:UsersaxeldAppDataLocalProgramsPythonPython39libsite-packagesflexxflx.py", line 10, in <module>
    from .app import *
  File "C:UsersaxeldAppDataLocalProgramsPythonPython39libsite-packagesflexxapp__init__.py", line 38, in <module>
    from ._app import App, manager
  File "C:UsersaxeldAppDataLocalProgramsPythonPython39libsite-packagesflexxapp_app.py", line 11, in <module>
    from base64 import encodestring as encodebytes
ImportError: cannot import name 'encodestring' from 'base64' (C:UsersaxeldAppDataLocalProgramsPythonPython39libbase64.py)
 

Понятия не имею, почему это происходит или как это исправить. Пожалуйста, помогите

Комментарии:

1. Этот используемый вами модуль, похоже, не обновлялся для последних версий Python — base64.encodestring устарел с версии Python 3.1 и полностью удален в версии 3.9. Вы могли бы исправить это, изменив эту строку на from base64 import encodebytes , но в модуле, вероятно, будут другие проблемы, связанные с версией.

2. Вероятно, это так. Я только что проверил, и в последний раз этот модуль обновлялся в 2007 году, так что да, я не думаю, что это лучший вариант. Спасибо