用py寫的flask web server 用web頁面作為postgres的客戶端 GUI,安裝在本地就可以了。
一、容器
參考 https://www.pgadmin.org/docs/pgadmin4/latest/container_deployment.html
docker-compse.yml
version: '3.7' services: pgAdmin4: restart: always image: dpage/pgadmin4:latest environment: PGADMIN_DEFAULT_EMAIL: abc@xmail.com PGADMIN_DEFAULT_PASSWORD: 1111 ports: - "8080:80" #頁面
啟動:
docker-compose up
然后就可以用瀏覽器打開
http://127.0.0.1:8080
看見pgAdmin4的登錄界面,就算成功。表示flask web server 已經啟動了。
用chrome登錄一遍,記住用戶郵箱和密碼,也就不用每次都輸入了。
唯一美中不足的是:連接數據庫時 Host 要填 局域網中的ip地址,不能127.0.0.1
事實證明這樣安裝最簡單。
把這個寫進真正項目的docker-compse.yml 更省事。
避免了 本地安裝python wheel,和pgAdmin4本身不斷提示升級。
二、Python Wheel
參考https://linuxhint.com/install-pgadmin4-ubuntu/
安裝依賴
$ sudo apt-get install build-essential libssl-dev libffi-dev libgmp3-dev \
virtualenv python-pip libpq-dev python-dev
確認當前是py版本:和pip安裝的庫路徑
馬上2020年1月, py2就不支持了. 所以確認一下都是py3.6.
python
from distutils.sysconfig import get_python_lib
print(get_python_lib())
我自己竟然發現默認版本是不知什么時候裝的Anaconda3,
想卸載,官網https://docs.anaconda.com/anaconda/install/uninstall/ 提示 卸載只能刪除,2333
確認 pip是2的還是3的
進入文件夾
/usr/local/bin
看看,pip 是更像 pip2 還是更像pip3,否則pip了半天,還是運行不了
python2 到2020年就不支持了,確保pip 和python都指向系統自帶的3.6
下載安裝。
居然不發布到pip上,幾個意思
wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v4.16/pip/pgadmin4-4.16-py2.py3-none-any.whl --no-check-certificate sudo -H pip3 install pgadmin4-4.16-py2.py3-none-any.whl
安裝了一堆py庫,凈是老面孔,2333
如果出現
Cannot uninstall 'psutil'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
sudo -H pip3 install pgadmin4-4.16-py2.py3-none-any.whl --ignore-installed
參考https://www.pgadmin.org/faq/#2
運行
sudo xed /usr/local/lib/python3.6/dist-packages/pgadmin4/config_distro.py
或
sudo xed /usr/local/lib/python3.7/site-packages/pgadmin4/config_distro.py
加入SERVER_MODE = False
然后再運行,不然必須輸入email+pwd 煩。
sudo python3 /usr/local/lib/python3.6/dist-packages/pgadmin4/pgAdmin4.py
或
python3.7 /usr/local/lib/python3.7/site-packages/pgadmin4/pgAdmin4.py
結果
OSError: [Errno 13] Permission denied: '/var/lib/pgadmin'
參考:
https://stackoverflow.com/questions/46707935/oserror-errno-13-permission-denied-var-lib-pgadmin
sudo mkdir "/var/log/pgadmin" sudo chmod a+wrx "/var/log/pgadmin" sudo mkdir "/var/lib/pgadmin" sudo chmod a+wrx "/var/lib/pgadmin"
居然是用flask寫的一個web! 訪問默認網址http://127.0.0.1:5050/browser/#
有點意思
看見除了默認的postgres數據庫之外, 已經創建出了1個template_postgis數據庫,包含幾個extention(dockerfile 安裝時initdb-postgis.sh里定義)
三、APT
https://wiki.postgresql.org/wiki/Apt
但是說缺少秘鑰,沒成功。