Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save solodyagin/876eb36aa5b3f3b3504bb7e08318a764 to your computer and use it in GitHub Desktop.
Save solodyagin/876eb36aa5b3f3b3504bb7e08318a764 to your computer and use it in GitHub Desktop.
Install pgAdmin4 v2.0 with python3 on Ubuntu 16.04 DESKTOP mode

Install pgAdmin4 v2.0 with Python3 on Ubuntu 16.04 DESKTOP mode

  1. Get Python Wheel pgAdmin4
wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v2.0/pip/pgadmin4-2.0-py2.py3-none-any.whl
  1. Install pip3
sudo apt install python3-pip
  1. Install virtualenv
sudo pip3 install virtualenv
  1. Create virtualenv in dir ~/py3-venv-pgadmin
virtualenv --system-site-packages --python=python3.5 ~/py3-venv-pgadmin
  1. Activate virtualenv
cd ~/py3-venv-pgadmin/bin
source activate
  1. Check pip3
which pip3
~/py3-venv-pgadmin/bin/pip3
  1. Install pgAdmin4
pip3 install ~/pgadmin4-2.0-py2.py3-none-any.whl
  1. For desktop deployment
cd ~/py3-venv-pgadmin/lib/python3.5/site-packages/pgadmin4
touch config_local.py
nano config_local.py

write:

import os
SERVER_MODE = False
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')

run:

python3 ~/py3-venv-pgadmin/lib/python3.5/site-packages/pgadmin4/setup.py
  1. Exit virtualenv
deactivate
  1. For run pgadmin4 create script ~/py3-venv-pgadmin/pgadmin4.sh
#!/bin/bash
cd ~/py3-venv-pgadmin/bin
source activate
python3 ~/py3-venv-pgadmin/lib/python3.5/site-packages/pgadmin4/pgAdmin4.py
  1. Make script executable
chmod +x ~/py3-venv-pgadmin/pgadmin4.sh
  1. Create alias for bash
nano ~/.bashrc

write at the end of file:

alias pgadmin4='~/py3-venv-pgadmin/pgadmin4.sh'

reload bashrc

source ~/.bashrc

now you can run pgadmin

pgadmin4
  1. Creating a service to startup at pgadmin4 boot time
sudo nano /etc/systemd/system/pgadmin4.service

paste:

[Unit]
Description=Pgadmin4 Service  
After=network.target

[Service]
User=silencio
Group=silencio
WorkingDirectory=/home/silencio/py3-venv-pgadmin/
Environment="PATH=/home/silencio/py3-venv-pgadmin/bin"
ExecStart="/home/silencio/py3-venv-pgadmin/pgadmin4.sh"
PrivateTmp=true

[Install]
WantedBy=multi-user.target

note: my username is silencio

  1. Make systemd aware of your new service
sudo systemctl daemon-reload
sudo systemctl enable pgadmin4
sudo systemctl start pgadmin4 && sudo systemctl status pgadmin4
  1. Now check in your browser http://localhost:5050
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment