Ошибка при попытке запустить pgAdmin4

Я установил postgresql 9.6 (используя предложенный установщик Linux), который поставляется с pgAdmin4, но получил несколько ошибок.

Во-первых, мне пришлось изменить имя папки с «pgAdmin 4» (обратите внимание на дополнительное пространство) на «pgAdmin4», чтобы избежать ошибки «файл не найден».

Затем я запускаю sudo python pgAdmin4.py и получаю следующую ошибку:

Traceback (most recent call last):
   File "../../pgAdmin4.py", line 24, in <module>
      from pgadmin import create_app
   File "/opt/PostgreSQL/9.6/pgAdmin4/web/pgadmin/__init__.py", line 17, in <module>
      from flask import Flask, abort, request, current_app
ImportError: No module named flask

Я попытался выполнить этот связанный вопрос: Flask ImportError: No Module Named Flask - удалось установить флягу на virtualenv.

Но затем я начал получать другие отсутствующие модули, связанные с flask: flask_babel, flask_login, flask_security. Я установил их все с помощью pip, но потом получил ошибку об отсутствующем модуле htmlmin.minify, который я не могу установить.

Traceback (most recent call last):
   File "../pgAdmin4.py", line 24, in <module>
      from pgadmin import create_app
   File "/opt/PostgreSQL/9.6/pgAdmin4/web/pgadmin/__init__.py", line 23, in <module>
      from htmlmin.minify import html_minify
ImportError: No module named htmlmin.minify

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

Итак, у кого-нибудь есть идея, как заставить pgAdmin4 работать в среде Ubuntu?


person Elad Tabak    schedule 21.12.2016    source источник
comment
Вы установили виртуалэнв? Вы пытаетесь сделать все изнутри virtualenv?   -  person Nurjan    schedule 21.12.2016
comment
Я установил virtualenv, но может быть, я на самом деле не работаю из этой виртуальной среды? как мне убедиться?   -  person Elad Tabak    schedule 21.12.2016
comment
Вам нужно активировать virtualenv, запустив . venv/bin/activate, где venv — это результат virtualenv venv. Вместо точки вы можете использовать команду source.   -  person Nurjan    schedule 21.12.2016
comment
Да, я запускаю среду, из-за чего терминал показывает приглашение, начинающееся с имени среды (фляга). Все равно получаю ошибку. Я подозреваю, что установка pip не была выполнена на virtualenv. Когда я запускаю pip install flask, я получаю сообщение об ошибке с разрешениями, поэтому я запускаю его с помощью sudo, но я думаю, что sudo заставляет его устанавливаться за пределами virtualenv.   -  person Elad Tabak    schedule 21.12.2016


Ответы (6)


Согласно https://www.pgadmin.org/download/pip4.php.

Установите virtualenv, запустив:

sudo apt-get install virtualenv

Вам также необходимо установить эти 2 библиотеки:

sudo apt-get install libpq-dev python-dev 

Затем:

cd ~/bin/
virtualenv pgadmin4

Я предпочитаю использовать каталог ~/bin/ для установки приложений.

Затем вы загружаете pgadmin4-1.1-py2-none-any.whl или pgadmin4-1.1-py3-none-any.whl в зависимости от используемой версии Python. В этом примере мы используем Python 2.7.

Вы скачиваете pgadmin4:

wget https://ftp.postgresql.org/pub/pgadmin3/pgadmin4/v1.1/pip/pgadmin4-1.1-py2-none-any.whl

Активируйте виртуальную среду:

. ~/bin/pgadmin4/bin/activate

После этого вы увидите (pgadmin4) в терминале.

Внутри pgadmin4 запустите:

pip install ./pgadmin4-1.1-py2-none-any.whl

После этого вы должны иметь возможность запускать pgadmin4:

python ~/bin/pgadmin4/lib/python2.7/site-packages/pgadmin4/pgAdmin4.py 

Чтобы немного упростить рабочий процесс, вы можете создать псевдоним. Например, в Ubuntu 16.04 LTS добавьте псевдоним в файл ~/.bash_aliases:

alias pgadmin4='. /home/your_username/bin/pgadmin4/bin/activate; /home/your_username/bin/pgadmin4/lib/python2.7/site-packages/pgadmin4/pgAdmin4.py'

Где your_username следует заменить вашим настоящим именем пользователя.

Затем дайте разрешение на выполнение, например, 764 файлу pgAdmin4.py в:

/home/your_username/bin/pgadmin4/lib/python2.7/site-packages/pgadmin4/pgAdmin4.py

Также нужно отредактировать файл pgAdmin4.py и добавить в самый верх эту строчку:

#!/home/your_username/bin/pgadmin4/bin/python

где your_username — ваше настоящее имя пользователя.

Это гарантирует, что вы запустите приложение, используя требуемую версию Python, и включите все необходимые зависимости для запуска pgadmin4.

Затем запустите . ~/.bashrc, чтобы применить изменения.

Итак, теперь вы можете открыть свой терминал и просто набрать pgadmin4, чтобы запустить его.

Откройте браузер и укажите:

http://127.0.0.1:5050

Еще одно замечание: если вам нужно запустить pgadmin4 в режиме рабочего стола, вам нужно изменить SERVER_MODE на False в:

/home/your_username/bin/pgadmin4/lib/python2.7/site-packages/pgadmin4/config.py

В противном случае, когда вы зайдете на localhost: 5050, он попросит вас ввести логин и пароль.

ОБНОВЛЕНИЕ:

Начиная с 2021 года (и значительно раньше) гораздо лучшим вариантом будет использование предварительно настроенного контейнера докеров с pgadmin4 на нем. Например, образ докера pgadmin4 можно загрузить с https://hub.docker.com/r/dpage/pgadmin4/.

Надеюсь это поможет.

person Nurjan    schedule 21.12.2016
comment
Поэтому создание каталога с виртуальным окружением, которое вы используете, а затем его запуск имеет смысл. Что кажется странным, так это то, что вам нужно указать расположение файла в пакетах сайта python 2.7, чтобы запустить приложение. Не кажется ли это немного запутанным? Действительно ли это предполагаемый рабочий процесс, которому нужно следовать каждый раз, когда они хотят запустить PgAdmin4? - person kuanb; 25.01.2017
comment
@kuanb, согласно официальному сайту pgadmin.org/download/pip4.php вы необходимо использовать этот путь в пакетах сайта python 2.7 для запуска pgadmin4. В качестве обходного пути я сделал псевдоним, в котором я активирую virtualenv, а затем запускаю pgadmin4, и он отлично работает. Я отредактирую ответ, чтобы показать, как это работает. - person Nurjan; 26.01.2017
comment
@Nurzhan Нуржан Я думаю, что вам не хватает python перед вызовом файла pgadmin4.py в определении вашего псевдонима. - person newdimension; 05.02.2017
comment
@newdimension Нет, вам не нужно python перед вызовом pgadmin4.py. pgadmin4.py сам по себе является исполняемым файлом. - person Nurjan; 05.02.2017
comment
В этой строке ошибка. wget https://ftp.postgresql.org/pub/pgadmin3/pgadmin4/v1.1/pip/pgadmin4-1.1-py2-none-any.whl нет необходимости в папке pgadmin3. Правильный URL должен быть https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v1.1/pip/pgadmin4-1.1-py2-none-any.whl - person neeraja; 18.08.2020
comment
04.03.2021, 12:11:59 FEHLER 404: не найдено. - person Steve K; 04.03.2021
comment
@SteveK Там ftp.postgresql.org/pub/pgadmin/pgadmin4 - person pabgaran; 08.03.2021

Следуя документации по добавлению PgAdmin 4 в мою Fedora 28, я выбрал вариант Docker:

mkdir ~/.pgadmin4  # to store config and stuff
docker run -d --rm --network host -v ~/.pgadmin4:/pgadmin thajeztah/pgadmin4

Затем перейдите на http://localhost:5050, и все готово.

См. https://github.com/thaJeztah/pgadmin4-docker для получения дополнительной информации.

person nyxz    schedule 30.07.2018
comment
Это, безусловно, самое простое решение. Теперь у меня есть Docker и pgAdmin4, работающие на Chromebook. Для получения подробной информации о настройке Chrombook Docker выполните следующие действия: Установите Docker на Chromebook curl -fsSL download.docker. com/linux/debian/gpg | sudo apt-key add - sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common sudo add-apt-repository deb [arch=amd64] download.docker.com/linux/debian $(lsb_release -cs) стабильное обновление sudo apt sudo apt install docker-ce sudo usermod -a -G docker $ПОЛЬЗОВАТЕЛЬ - person John Dauphine; 08.02.2020

Пожалуйста, попробуйте эти команды:

sudo apt-get install pgadmin4

sudo python3.5 /usr/share/pgadmin4/web/pgAdmin4.py
person andrei040191    schedule 28.01.2018
comment
а затем вам нужно установить каждое расширение фляги для вашей установки python 3.5. - person Abdelouahab; 29.01.2018
comment
sudo apt-get install pgadmin4 больше не работает на момент публикации этого комментария. Выдает ошибку E: Package 'pgadmin4' has no installation candidate - person Suraj S Jain; 15.06.2019

В Debian, по крайней мере, веб-версия не зависит от этого sudo apt install pgadmin4-web. Знайте, может быть, вам нужен богатый клиент, но вы можете рассмотреть его как альтернативу

person Pipo    schedule 16.07.2020

для следующей ссылки - ОШИБКА 404: не найдено.

wget https://ftp.postgresql.org/pub/pgadmin3/pgadmin4/v1.1/pip/pgadmin4-1.1-py2-none-any.whl

используйте альтернативную ссылку

wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v1.4/pip/pgadmin4-1.4-py2.py3-none-any.whl

также запустите ссылку

pip install pgadmin4-1.4-py2.py3-none-any.whl -U psycopg2
person tushar zore    schedule 20.07.2020

Если вы используете Windows, попробуйте удалить папку: %APPDATA%\pgAdmin

person Дмитрий Винник    schedule 28.08.2018