【问题标题】:Get fatal error: server could not be contacted when running pgAdmin4. 'NoneType' object has no attribute 'value'出现致命错误:运行 pgAdmin4 时无法联系服务器。 “NoneType”对象没有属性“值”
【发布时间】:2021-08-04 05:05:36
【问题描述】:

我有一个全新的 Windows 安装,我正在尝试安装 Postgres 和 pgAdmin4。 我使用默认设置重新安装了所有内容(pgAdmin 4、postrgres 13 等)。当我运行 pgAdmin 4 时,我收到“致命错误:无法联系服务器”并显示以下消息:

pgAdmin Runtime Environment
--------------------------------------------------------
Python Path: "C:\Program Files\PostgreSQL\13\pgAdmin 4\python\python.exe"
Runtime Config File: "C:\Users\username\AppData\Roaming\pgadmin\runtime_config.json"
pgAdmin Config File: "C:\Program Files\PostgreSQL\13\pgAdmin 4\web\config.py"
Webapp Path: "C:\Program Files\PostgreSQL\13\pgAdmin 4\web\pgAdmin4.py"
pgAdmin Command: "C:\Program Files\PostgreSQL\13\pgAdmin 4\python\python.exe -s C:\Program Files\PostgreSQL\13\pgAdmin 4\web\pgAdmin4.py"
Environment: 
  - ALLUSERSPROFILE: C:\ProgramData
  - APPDATA: C:\Users\username\AppData\Roaming
  - CHROME_CRASHPAD_PIPE_NAME: \\.\pipe\crashpad_4296_YJZESWNMDVNGRRUO
  - CHROME_RESTART: NW.js|Whoa! NW.js has crashed. Relaunch now?|LEFT_TO_RIGHT
  - CommonProgramFiles: C:\Program Files\Common Files
  - CommonProgramFiles(x86): C:\Program Files (x86)\Common Files
  - CommonProgramW6432: C:\Program Files\Common Files
  - COMPUTERNAME: pcname
  - ComSpec: C:\Windows\system32\cmd.exe
  - configsetroot: C:\Windows\ConfigSetRoot
  - DriverData: C:\Windows\System32\Drivers\DriverData
  - HOMEDRIVE: C:
  - HOMEPATH: \Users\username
  - LOCALAPPDATA: C:\Users\username\AppData\Local
  - LOGONSERVER: \\pcname
  - NUMBER_OF_PROCESSORS: 8
  - NVM_HOME: C:\Users\username\AppData\Roaming\nvm
  - NVM_SYMLINK: C:\Program Files\nodejs
  - OneDrive: C:\Users\username\OneDrive
  - OS: Windows_NT
  - Path: C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\Program Files\PostgreSQL\12\bin;C:\Users\username\AppData\Roaming\nvm;C:\Program Files\nodejs;C:\Users\username\AppData\Local\Microsoft\WindowsApps;C:\Users\username\AppData\Local\Programs\Microsoft VS Code\bin
  - PATHEXT: .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
  - PGADMIN_INT_KEY: 2e023387-9c82-4cdd-af2f-c82562c6e4fc
  - PGADMIN_INT_PORT: 50567
  - PGADMIN_SERVER_MODE: OFF
  - PROCESSOR_ARCHITECTURE: AMD64
  - PROCESSOR_IDENTIFIER: Intel64 Family 6 Model 140 Stepping 1, GenuineIntel
  - PROCESSOR_LEVEL: 6
  - PROCESSOR_REVISION: 8c01
  - ProgramData: C:\ProgramData
  - ProgramFiles: C:\Program Files
  - ProgramFiles(x86): C:\Program Files (x86)
  - ProgramW6432: C:\Program Files
  - PSModulePath: C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules
  - PUBLIC: C:\Users\Public
  - SystemDrive: C:
  - SystemRoot: C:\Windows
  - TEMP: C:\Users\username\AppData\Local\Temp
  - TMP: C:\Users\username\AppData\Local\Temp
  - USERDOMAIN: pcname
  - USERDOMAIN_ROAMINGPROFILE: pcname
  - USERNAME: username
  - USERPROFILE: C:\Users\username
  - windir: C:\Windows
--------------------------------------------------------

Traceback (most recent call last):
  File "C:\Program Files\PostgreSQL\13\pgAdmin 4\web\pgAdmin4.py", line 98, in <module>
    app = create_app()
  File "C:\Program Files\PostgreSQL\13\pgAdmin 4\web\pgadmin\__init__.py", line 347, in create_app
    if not os.path.exists(SQLITE_PATH) or get_version() == -1:
  File "C:\Program Files\PostgreSQL\13\pgAdmin 4\web\pgadmin\setup\db_version.py", line 19, in get_version
    return version.value
AttributeError: 'NoneType' object has no attribute 'value'

注意:'username' 和 'pcname' 是我替换实际字符串的占位符,其中一些最初是大写的。

已验证服务“postgresql-x64-13”正在运行。尽管尝试了以下操作,但我仍然收到此消息:

  • 以管理员身份运行。
  • 删除 C:\Users\username\AppData\Roaming\pgadmin
  • C:\Program Files\PostgreSQL\13\bin 添加到PATH 环境变量(系统和 用户)
  • 正在重新启动服务。
  • 卸载/重新安装 Postgres 13。
  • 卸载/安装 Postgres 12。
  • 正在重新启动我的机器。

产生不同结果的一件事是停止服务,删除 C:\Users\username\AppData\Roaming\pgadmin,重新启动服务,然后运行 ​​pg4admin 导致“致命错误”,输出如下:

pgAdmin Runtime Environment
--------------------------------------------------------
Python Path: "C:\Program Files\PostgreSQL\13\pgAdmin 4\python\python.exe"
Runtime Config File: "C:\Users\username\AppData\Roaming\pgadmin\runtime_config.json"
pgAdmin Config File: "C:\Program Files\PostgreSQL\13\pgAdmin 4\web\config.py"
Webapp Path: "C:\Program Files\PostgreSQL\13\pgAdmin 4\web\pgAdmin4.py"
pgAdmin Command: "C:\Program Files\PostgreSQL\13\pgAdmin 4\python\python.exe -s C:\Program Files\PostgreSQL\13\pgAdmin 4\web\pgAdmin4.py"
Environment: 
  - ALLUSERSPROFILE: C:\ProgramData
  - APPDATA: C:\Users\username\AppData\Roaming
  - CHROME_CRASHPAD_PIPE_NAME: \\.\pipe\crashpad_10312_CHCJAQAYYFQQIAGB
  - CHROME_RESTART: NW.js|Whoa! NW.js has crashed. Relaunch now?|LEFT_TO_RIGHT
  - CommonProgramFiles: C:\Program Files\Common Files
  - CommonProgramFiles(x86): C:\Program Files (x86)\Common Files
  - CommonProgramW6432: C:\Program Files\Common Files
  - COMPUTERNAME: pcname
  - ComSpec: C:\Windows\system32\cmd.exe
  - configsetroot: C:\Windows\ConfigSetRoot
  - DriverData: C:\Windows\System32\Drivers\DriverData
  - HOMEDRIVE: C:
  - HOMEPATH: \Users\username
  - LOCALAPPDATA: C:\Users\username\AppData\Local
  - LOGONSERVER: \\pcname
  - NUMBER_OF_PROCESSORS: 8
  - NVM_HOME: C:\Users\username\AppData\Roaming\nvm
  - NVM_SYMLINK: C:\Program Files\nodejs
  - OneDrive: C:\Users\username\OneDrive
  - OS: Windows_NT
  - Path: C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\Program Files\PostgreSQL\13\bin;C:\Users\username\AppData\Roaming\nvm;C:\Program Files\nodejs;C:\Users\username\AppData\Local\Microsoft\WindowsApps;C:\Users\username\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\username\AppData\Roaming\nvm;C:\Program Files\nodejs;C:\Program Files\PostgreSQL\13\bin;
  - PATHEXT: .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
  - PGADMIN_INT_KEY: cb6cf8e1-ca8b-416b-985f-1fd1a945ff06
  - PGADMIN_INT_PORT: 50906
  - PGADMIN_SERVER_MODE: OFF
  - PROCESSOR_ARCHITECTURE: AMD64
  - PROCESSOR_IDENTIFIER: Intel64 Family 6 Model 140 Stepping 1, GenuineIntel
  - PROCESSOR_LEVEL: 6
  - PROCESSOR_REVISION: 8c01
  - ProgramData: C:\ProgramData
  - ProgramFiles: C:\Program Files
  - ProgramFiles(x86): C:\Program Files (x86)
  - ProgramW6432: C:\Program Files
  - PSModulePath: C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules
  - PUBLIC: C:\Users\Public
  - SESSIONNAME: Console
  - SystemDrive: C:
  - SystemRoot: C:\Windows
  - TEMP: C:\Users\username\AppData\Local\Temp
  - TMP: C:\Users\username\AppData\Local\Temp
  - USERDOMAIN: pcname
  - USERDOMAIN_ROAMINGPROFILE: pcname
  - USERNAME: username
  - USERPROFILE: C:\Users\username
  - windir: C:\Windows
--------------------------------------------------------

NOTE: Configuring authentication for DESKTOP mode.

Traceback (most recent call last):
  File "C:\Program Files\PostgreSQL\13\pgAdmin 4\web\pgAdmin4.py", line 91, in <module>
    exec(open(file_quote(setup_py), 'r').read())
  File "<string>", line 506, in <module>
  File "<string>", line 378, in setup_db
  File "C:\Program Files\PostgreSQL\13\pgAdmin 4\web\pgadmin\__init__.py", line 351, in create_app
    db_upgrade(app)
  File "C:\Program Files\PostgreSQL\13\pgAdmin 4\web\pgadmin\setup\db_upgrade.py", line 25, in db_upgrade
    flask_migrate.upgrade(migration_folder)
  File "C:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\flask_migrate\__init__.py", line 96, in wrapped
    f(*args, **kwargs)
  File "C:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\flask_migrate\__init__.py", line 271, in upgrade
    command.upgrade(config, revision, sql=sql, tag=tag)
  File "C:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\alembic\command.py", line 294, in upgrade
    script.run_env()
  File "C:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\alembic\script\base.py", line 490, in run_env
    util.load_python_file(self.dir, "env.py")
  File "C:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\alembic\util\pyfiles.py", line 97, in load_python_file
    module = load_module_py(module_id, path)
  File "C:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\alembic\util\compat.py", line 182, in load_module_py
    spec.loader.exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\Program Files\PostgreSQL\13\pgAdmin 4\web\pgadmin\setup\..\..\migrations\env.py", line 93, in <module>
    run_migrations_online()
  File "C:\Program Files\PostgreSQL\13\pgAdmin 4\web\pgadmin\setup\..\..\migrations\env.py", line 86, in run_migrations_online
    context.run_migrations()
  File "<string>", line 8, in run_migrations
  File "C:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\alembic\runtime\environment.py", line 813, in run_migrations
    self.get_context().run_migrations(**kw)
  File "C:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\alembic\runtime\migration.py", line 561, in run_migrations
    step.migration_fn(**kw)
  File "C:\Program Files\PostgreSQL\13\pgAdmin 4\web\migrations\versions\fdc58d9bd449_.py", line 122, in upgrade
    Security(current_app, user_datastore, register_blueprint=False)
  File "C:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\flask_security\core.py", line 1062, in __init__
    self._state = self.init_app(
  File "C:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\flask_security\core.py", line 1102, in init_app
    self._state = state = _get_state(app, datastore, **kwargs)
  File "C:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\flask_security\core.py", line 608, in _get_state
    remember_token_serializer=_get_serializer(app, "remember"),
  File "C:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\flask_security\core.py", line 593, in _get_serializer
    return URLSafeTimedSerializer(secret_key=secret_key, salt=salt)
  File "C:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\itsdangerous\serializer.py", line 104, in __init__
    self.secret_keys: _t.List[bytes] = _make_keys_list(secret_key)
  File "C:\Program Files\PostgreSQL\13\pgAdmin 4\python\lib\site-packages\itsdangerous\signer.py", line 64, in _make_keys_list
    return [want_bytes(s) for s in secret_key]
TypeError: 'NoneType' object is not iterable

我最近在另一台机器上安装了它,没有任何问题。新版本会出现问题似乎很奇怪。几乎让我觉得我缺少旧版本包含的东西(python?),尽管情况不应该如此。有很多关于此的帖子,我已经尝试了其中建议的所有内容,但没有解决。

【问题讨论】:

  • 我有同样的错误。你发现了吗?
  • 我没有@Delsx。希望有人能插话。
  • 我独立安装了 PgAdmin 4 V5,然后我删除了 Roaming/pgadmin,并以管理员身份打开了 pgadmin4。
  • 非常感谢您的参与 - 我会试一试。我认为您从这里下载了独立安装程序? pgadmin.org/download
  • 我今天在安装全新的 postgresql 时遇到了同样的问题,并且您在上面列出的问题中没有任何工作。独立安装pgAdmin并删除@Delsx建议的文件夹是可行的(尽管我不必以管理员身份运行它)。在独立运行一次后,使用 postgresql 安装程序安装的 pgAdmin 现在似乎也可以工作了。

标签: postgresql pgadmin


【解决方案1】:

如果即使是独立的 pgAdmin4 exe 也不起作用,请转到 python 虚拟环境(如果没有,则使用 pip 安装它)。在虚拟环境中安装 pgAdmin 包(pip install pgadmin4)。导航到 C:\Users(username)\Envs(或您各自的 env 文件夹)\test(或您各自的环境名称)\Lib\site-packages\pgadmin4\pgAdmin4.py。 万一在运行 py 文件时,您可能会遇到 cheroot 模块,找不到 fot,然后在虚拟环境中安装 pip install cheroot 就完成了。 请记住在执行此操作之前激活环境。为了方便,请在两个单独的 cmd 窗口中执行此操作。

即使exe不工作,上述过程也一定能工作。

一旦 postgresql 正在侦听端口:5432,还要验证,否则在 postgresql.conf 中更改端口

【讨论】:

    【解决方案2】:

    这个解决方案对我有用:

    仅从您的系统中删除 pgAdmin4(在单个组件卸载模式下)。

    然后下载并安装pgAdmin4:https://www.postgresql.org/ftp/pgadmin/pgadmin4/v5.2/windows/

    删除 C:\Users*YourUsername*\AppData\Roaming\pgadmin

    运行 PgAdmin4

    【讨论】:

      【解决方案3】:

      我一直在搜索这个问题,我做了以下操作

      1. 删除 C:\Users\username\AppData\Roaming\pgadmin 文件夹
      2. 添加下一个 windows 用户环境变量

      SQLITE_PATH = C:\Users\*你的用户名*\AppData\Roaming\pgadmin\pgadmin4.db

      1. 在 C:\Program Files\pgAdmin 4\v5\web 打开 cmd 并使用 python 运行 setup.py 文件
      2. 安装所有缺少的依赖项(如果有)
      3. 一旦 setup.py 成功完成,您应该再次从 AppData 中删除 pgadmin 文件夹
      4. 再运行一次setup.py
      5. 正常打开pgAdming4(不是管理员)

      这个解决方法对我有用

      我的设置是 PostgreSQL 9.6、pgAdmin4 v5.3 和 Python 3.9.5

      【讨论】:

        【解决方案4】:

        适合我的解决方案:

        在以下位置下载 pgAdmin4: https://www.postgresql.org/ftp/pgadmin/pgadmin4/v5.2/windows/ 在以下位置下载 Sql 服务器: https://www.enterprisedb.com/downloads/postgres-postgresql-downloads 设置时,取消选中安装pgAdmin 4和StackBuilder。

        【讨论】:

          【解决方案5】:

          我也有这个问题。 我遵循了nonethewiser的建议答案,安装了独立的pgAdmin。 删除 Roaming/pgadmin 并以管理员身份启动后,它不起作用。 我再次尝试了捆绑的 pgAdmin,它奇怪地工作了。

          【讨论】:

            【解决方案6】:

            最后对我有用的解决方案是:

            1. 删除 C:\Users\username\AppData\Roaming\pgadmin
            2. 打开终端并使用 python 运行 C:\Program Files\PostgreSQL\12\pgAdmin 4\web\pgAdmin4.py 文件

            Terminal view -> python execution

            1. 从 Windows 菜单以管理员身份运行“pgAdmin 4”应用程序,它将按预期工作

            【讨论】:

            • 不执行第二步即可解决问题
            • 我试过没有第二步,正如许多其他 cmets 所建议的那样,但问题仍然存在。我可以通过运行 pgAdmin4.py 来解决它
            【解决方案7】:

            正如 Delsx 在 cmets 中指出的那样,可以安装独立的 pgAdmin 而不会出现与 pgadmin.org/download 相同的问题。看来这是一个普遍存在的错误,已在 pgAdmin bug listherehere 上报告

            【讨论】:

              猜你喜欢
              • 2021-12-01
              • 1970-01-01
              • 2021-10-22
              • 2022-10-06
              • 1970-01-01
              • 2020-08-21
              • 2021-10-28
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多