【问题标题】:"ImportError: cannot import name 'ImmutableDict'" error when installing pgAdmin4安装 pgAdmin4 时出现“ImportError: cannot import name 'ImmutableDict'”错误
【发布时间】:2020-02-07 03:01:32
【问题描述】:

我正在尝试在this tutorial (https://www.digitalocean.com/community/tutorials/how-to-install-configure-pgadmin4-server-mode) 之后使用 python3 在 Ubuntu 18.04 上安装 pgAdmin4,但是在配置 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 但仍然报同样的错误。

alembic (1.4.0) Babel (2.8.0) bcrypt (3.1.7) blinker (1.4) cffi (1.13.2) Click (7.0) 密码学 (2.8) Flask (1.0.2) Flask-BabelEx (0.9.3) Flask-Compress (1.4.0) Flask-Gravatar (0.5.0) Flask-Login (0.4.1) 烧瓶邮件 (0.9.1) 烧瓶迁移 (2.4.0) 烧瓶偏执狂 (0.2.0) 烧瓶主体 (0.4.0) 烧瓶安全 (3.0.0) Flask-SQLAlchemy (2.3.2) Flask-WTF (0.14.2) itsdangerous (1.1.0) Jinja2 (2.11.1) Mako (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-binary (2.8.4) pycparser (2.19) PyNaCl (1.3.0) python-dateutil (2.8.1) python-editor (1.0.4) pytz (2018.9) setuptools (39.0.1)simplejson(3.16.0)六(1.14.0)speaker(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)

有什么想法吗?

【问题讨论】:

标签: pgadmin werkzeug


【解决方案1】:

如果其他依赖项允许,升级到flask-babelex&gt;=0.9.4(或flask-babel&gt;=1.0.0 用于其他项目)。 flask-babelex Github issue 21 flask-babel Github issue 162

【讨论】:

    【解决方案2】:

    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
    

    【讨论】:

      【解决方案3】:

      从 werkzeug.datastructures 导入 ImmutableDict

      【讨论】:

      • 你能说得更清楚些,举个完整的例子吗?
      【解决方案4】:

      我今天在安装另一个软件包的同时也解决了这个问题,似乎今天发布了一个可能导致问题的新版本。

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

      我决定回到较早的版本 (0.16.1),它解决了我的问题。降级:

      pip install --upgrade werkzeug==0.16.1

      希望这也适用于您。

      【讨论】:

        猜你喜欢
        • 2022-08-12
        • 1970-01-01
        • 1970-01-01
        • 2021-08-18
        • 2011-01-22
        • 1970-01-01
        • 2020-04-20
        • 2018-10-08
        • 1970-01-01
        相关资源
        最近更新 更多