4  安装pgAdmin4

4.1 pip安装-成功实践

参考资料来自:https://blog.csdn.net/sinat_36528886/article/details/134979208

  • 创建虚拟环境 > 会在当前目录新建一个venv目录
python3.8 -m venv venv
  • 激活虚拟环境
source venv/bin/activate
  • 安装pgadmin4
pip install pgadmin4
  • 修改config.py

进入venv/lib/python3.8/site-packages/pgadmin4/config.py,将DEFAULT_SERVER改为0.0.0.0

# DEFAULT_SERVER = '127.0.0.1'
DEFAULT_SERVER = '0.0.0.0'
  • 启动pgadmin4

venv的安装路径为~/Books/phd

screen -S pgadmin
source venv/bin/activate
pgadmin4
  • 关掉terminal,新建terminal

4.2 github安装

复杂且失败了,只留作痕迹。

4.3 安装NodeJS 16+

二进制文件安装方法 参考: https://github.com/nodejs/help/wiki/Installation#how-to-install-nodejs-via-binary-archive-on-linux

  • 官网下载二进制文件
wget https://nodejs.org/download/release/v17.9.1/node-v17.9.1-linux-x64.tar.xz  # 系统版本的GLIBC版本最高只能支持v17.9.1
  • 解压至安装文件夹/usr/local/lib/nodejs
 VERSION=v17.9.1
 DISTRO=linux-x64
 sudo mkdir -p /usr/local/lib/nodejs
 sudo tar -xJvf node-$VERSION-$DISTRO.tar.xz -C /usr/local/lib/nodejs 
  • 设置环境变量至~/.profile文件

我的系统是~/.bash_profile文件,将下列代码放在~/.bash_profile文件的后面

# Nodejs
VERSION=v17.9.1
DISTRO=linux-x64
export PATH=/usr/local/lib/nodejs/node-$VERSION-$DISTRO/bin:$PATH
  • 使环境变量起效
. ~/.bash_profile

# 在非ubuntu用户时,使用绝对路径

. /home/ubuntu/.bash_profile
  • 查看环境变量
echo $PATH
  • 测试是否安装成功
node -v
npm version
npx -v

4.4 安装yarn

npm install yarn --location=global

安装时会报没有权限写入,把/usr/local/lib/nodejs的权限改为root,可写入。

4.5 安装pgadmin4

4.5.1 安装运行环境

  • 安装依赖项
cd pgadmin4/runtime
yarn install
  • 配置开发环境 > 先复制文件
cp dev_config.json.in dev_config.json

dev_config.json的内容如下:

{
    "pythonPath": "C:/Python38/python.exe",
    "pgadminFile": "../web/pgAdmin4.py"
}

设置python执行文件的路径及pgAdmin4.py文件的路径:通过which python3.8查看路径。pgAdmin4.py的路径不用动。

{
    "pythonPath": "/home/hulihuihong/Books/phd/venv/bin/python",
    "pgadminFile": "../web/pgAdmin4.py"
}

4.5.2 安装python虚拟环境

  • 新建虚拟环境
python3.8 -m venv venv
  • 激活虚拟环境
source venv/bin/activate
  • 更新pip
pip install --upgrade pip
  • 安装虚拟环境依赖项 > 通过which psql查看psql的执行路径
PATH=$PATH:/usr/bin/psql pip install -r pgadmin4/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 安装回归测试的依赖项(可选)
pip install -r pgadmin4/web/regression/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 生成并添加设置
cp pgadmin4/web/config.py pgadmin4/web/config_local.py

config_local.py文件的内容为:

from config import *

# Debug mode
DEBUG = True

# App mode
SERVER_MODE = True

# Enable the test module
MODULE_BLACKLIST.remove('test')

# Log
CONSOLE_LOG_LEVEL = DEBUG
FILE_LOG_LEVEL = DEBUG

# DEFAULT_SERVER = '127.0.0.1'


DEFAULT_SERVER = '0.0.0.0'   # 服务器端,故使用'0.0.0.0'

UPGRADE_CHECK_ENABLED = True

# Use a different config DB for each server mode.
if SERVER_MODE == False:
    SQLITE_PATH = os.path.join(
        DATA_DIR,
        'pgadmin4-desktop.db'
    )
else:
    SQLITE_PATH = os.path.join(
        DATA_DIR,
        'pgadmin4-server.db'
    )
  • 初始设置pgAdmin的配置数据库 > 设置初始账号(邮箱和密码)
python3.8 pgadmin4/web/setup.py setup-db

报错:

home/hulihuihong/Books/phd/pgadmin4/web/pgadmin/utils/paths.py:129 in init_app                  │
│                                                                                                  │
│   126 │                                                                                          │
│   127 │   if storage_dir and not os.access(storage_dir, os.W_OK | os.R_OK):                      │
│   128 │                                                                  │
│ ❱ 129 │   │   raise InternalServerError(                                                         │
│   130 │   │   │   'The user does not have permission to read and write to the '                  │
│   131 │   │   │   'specified storage directory.'                                                 │
│   132 │   │   )                                                     

解决:找到paths.py文件,加上print(storage_dir),打印出来为/var/lib/pgadmin/storage,将其权限改为可写后,再次执行。

  • 启动

记得把5050端口放行


cd pgadmin4/web
python3.8 pgAdmin4.py   # 单机



waitress-serve --port=5050 pgAdmin4:app.server  # 服务器

报错:

pkg_resources.DistributionNotFound: The 'waitress==1.0.1' distribution was not found and is required by the application

解决:指定waitress-serve完整路径

cd pgadmin4/web
venv/bin/waitress-serve --port=5050 pgAdmin4:app.server

4.6 创建网页静态文件

cd pagadmin4
make install-node
make bundle