Ошибка «ImportError: невозможно импортировать имя« ImmutableDict »» при установке pgAdmin4 - PullRequest
6 голосов
/ 07 февраля 2020

Я пытаюсь установить pgAdmin4 в Ubuntu 18.04 с python3, следуя этому учебнику (https://www.digitalocean.com/community/tutorials/how-to-install-configure-pgadmin4-server-mode), но при настройке pgAdmin4 я получаю эту ошибку:

(my_env) 1 jess@hilarioserver:~/environments$ python my_env/lib/python3.6/site-packages/pgadmin4/setup.py
Traceback (most recent call last):
  File "my_env/lib/python3.6/site-packages/pgadmin4/setup.py", line 17, in <module>
    from pgadmin.model import db, User, Version, ServerGroup, Server, \
  File "/home/cta/environments/my_env/lib/python3.6/site-packages/pgadmin4/pgadmin/__init__.py", line 21, in <module>
    from flask_babelex import Babel, gettext
  File "/home/cta/environments/my_env/lib/python3.6/site-packages/flask_babelex/__init__.py", line 23, in <module>
    from werkzeug import ImmutableDict
ImportError: cannot import name 'ImmutableDict'

Я уже пытался установить werkzeug, но все равно выдает ту же ошибку.

alembi c (1.4.0) Babel (2.8.0) bcrypt (3.1.7) blinker (1.4 ) cffi (1.13.2) Клик (7.0) криптография (2.8) Flask (1.0.2) Flask -BabelEx (0.9.3) Flask -Компрессия (1.4.0) Flask -Граватар (0.5 .0) Flask -Логин (0.4.1) Flask -Почта (0.9.1) Flask -Миграция (2.4.0) Flask -Параноид (0.2.0) Flask -Принципал (0.4 .0) Flask -Безопасность (3.0.0) Flask -SQL Алхимия (2.3.2) Flask -WTF (0.14.2) его опасная (1.1.0) Jinja2 (2.11.1) Мако (1.1.1 ) MarkupSafe (1.1.1) paramiko (2.7.1) passlib (1.7.1) pgadmin4 (4.18) pip (9.0.1) pkg-resources (0.0.0) psutil (5.5.1) psycopg2-бинарный (2.8.4) pycparser (2.19) PyNaCl (1.3.0) python -датейтил (2.8.1) python -редактор (1.0.4) pytz (2018.9) setuptools (39.0 .1) простой json (3.1 6.0) шесть (1.14.0) говорящих (1.3) SQLAlchemy (1.3.13) sqlparse (0.2.4) sshtunnel (0.1.5) Werkzeug (1.0.0) wheel (0.34.2) WTForms (2.2.1)

Есть идеи?

Ответы [ 3 ]

12 голосов
/ 07 февраля 2020

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

https://pypi.org/project/Werkzeug/#history

Я решил go вернуться к более ранней версии (0.16.1), и это решило мою проблему. Чтобы понизить рейтинг:

pip install --upgrade werkzeug==0.16.1

Надеюсь, это работает и для вас.

2 голосов
/ 07 февраля 2020

Метод импорта изменился для v1.0.0. Смотрите это предупреждение:

The import 'werkzeug.ImmutableDict' is deprecated and will be removed in Werkzeug 1.0. Use 'from werkzeug.datastructures import ImmutableDict' instead.
    from werkzeug import ImmutableDict
1 голос
/ 11 февраля 2020

обновить до flask-babelex>=0.9.4 (или flask-babel>=1.0.0 для других проектов), если это позволят другие зависимости. flask -babelex Github выпуск 21 flask -бабель Github выпуск 162

...