问题描述
如何在桌面模式下安装pgAdmin 4? documentation仅详细说明服务器模式。
最佳解决方案
对于Ubuntu上的pgAdmin 4 v3.3,根据download page:
安装依赖项,创建虚拟环境,下载,安装和安装;配置
使用Python2.x
sudo apt-get install virtualenv python-pip libpq-dev python-dev
cd
virtualenv pgadmin4
cd pgadmin4
source bin/activate
pip install https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v3.3/pip/pgadmin4-3.3-py2.py3-none-any.whl
使用Python3.6(首选以避免编码相关问题)
sudo apt-get install virtualenv python3-pip libpq-dev python3-dev
cd
virtualenv -p python3 pgadmin4
cd pgadmin4
source bin/activate
pip3 install https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v3.3/pip/pgadmin4-3.3-py2.py3-none-any.whl
Configure
覆盖默认路径并将其设置为local configuration file中的single-user模式:
nano lib/python2.7/site-packages/pgadmin4/config_local.py
对于Python3.x:
nano lib/python3.6/site-packages/pgadmin4/config_local.py
写:
import os
DATA_DIR = os.path.realpath(os.path.expanduser(u'~/.pgadmin/'))
LOG_FILE = os.path.join(DATA_DIR, 'pgadmin4.log')
SQLITE_PATH = os.path.join(DATA_DIR, 'pgadmin4.db')
SESSION_DB_PATH = os.path.join(DATA_DIR, 'sessions')
STORAGE_DIR = os.path.join(DATA_DIR, 'storage')
SERVER_MODE = False
Run
python lib/python2.7/site-packages/pgadmin4/pgAdmin4.py
对于Python3.x:
python3 lib/python3.6/site-packages/pgadmin4/pgAdmin4.py
Access
Exit
使用Ctrl-C退出
再次运行
cd ~/pgadmin4
source bin/activate
python lib/python2.7/site-packages/pgadmin4/pgAdmin4.py
对于Python3.6
#!/bin/bash
cd ~/pgadmin4
source bin/activate
python3 lib/python3.6/site-packages/pgadmin4/pgAdmin4.py
做一个捷径
touch ~/pgadmin4/pgadmin4
chmod +x ~/pgadmin4/pgadmin4
nano ~/pgadmin4/pgadmin4
写:
#!/bin/bash
cd ~/pgadmin4
source bin/activate
python lib/python2.7/site-packages/pgadmin4/pgAdmin4.py
对于Python3.6
#!/bin/bash
cd ~/pgadmin4
source bin/activate
python3 lib/python3.6/site-packages/pgadmin4/pgAdmin4.py
现在您可以使用更简单的命令运行它:
~/pgadmin4/pgadmin4
Python3用户
将Python3.6中的[x]替换为各自的版本。
与pgAdmin 3配置冲突
由于.pgadmin
目录中的配置不兼容,pgAdmin 4
将无法在以前安装和使用pgAdmin 3
的环境中启动。最简单的解决方案是清除该目录或调整config_local.py
以指向一个干净的新.pgadmin4
目录。
次佳解决方案
其他选择是使用由thaJeztah提供的docker和docker图像 – https://github.com/thaJeztah/pgadmin4-docker
$ docker run --rm -p 5050:5050 thajeztah/pgadmin4
然后,要从pgadmin4中访问PostgreSQL数据库实例,您应该使用主机的IP而不是localhost和127.0.0.1,因为Docker会将这些映射到容器本身。
可以通过两个步骤找到dockerised数据库实例的IP:
-
使用以下命令查找数据库的容器ID:
docker ps
-
检查container_name以查找其IP:
docker inspect <ID from previous step>
您正在寻找”IPAddress”:”172.18.0.3″
第三种解决方案
我不确定我是否遗漏了某些东西(如果我这样做,请告诉我),但这似乎更简单:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
sudo apt install wget ca-certificates
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add
sudo apt update
sudo apt install pgadmin4
我在16.04测试了这个。