OSError:[Errno 13]权限被拒绝:'/ var/lib/pgadmin'

Mic*_*ael 7 pgadmin-4

Ubuntu 16.04.3

我想安装pgAdmin:

我用python 2创建了一个virtualenv.

然后安装pgAdmin 4 v2.0:

pip install https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v2.0/pip/pgadmin4-2.0-py2.py3-none-any.whl
Run Code Online (Sandbox Code Playgroud)

是时候运行pgAdmin了:

(pgadmin4) michael@michael-desktop:~/PycharmProjects/venv$ python pgadmin4/lib/python2.7/site-packages/pgadmin4/pgAdmin4.py
Traceback (most recent call last):
  File "pgadmin4/lib/python2.7/site-packages/pgadmin4/pgAdmin4.py", line 55, in <module>
    exec(open(file_quote(setupfile), 'r').read())
  File "<string>", line 46, in <module>
  File "/home/michael/PycharmProjects/venv/pgadmin4/lib/python2.7/site-packages/pgadmin4/pgadmin/setup/data_directory.py", line 23, in create_app_data_directory
    _create_directory_if_not_exists(os.path.dirname(config.SQLITE_PATH))
  File "/home/michael/PycharmProjects/venv/pgadmin4/lib/python2.7/site-packages/pgadmin4/pgadmin/setup/data_directory.py", line 15, in _create_directory_if_not_exists
    os.mkdir(_path)
OSError: [Errno 13] Permission denied: '/var/lib/pgadmin'
Run Code Online (Sandbox Code Playgroud)

你能帮我一把吗?

Mur*_*a Z 24

如果您不想更改任何内容的权限,则始终可以覆盖pgAdmin4中的默认路径.

在您的安装位置创建名为config_local.py的文件(如果尚未存在) ../pgadmin4/web/

我的文件位置:/usr/local/lib/python2.7/dist-packages/pgadmin4/config_local.py

并在您的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')
Run Code Online (Sandbox Code Playgroud)

重启pgAdmin4并检查.


abr*_*abr 6

权限错误意味着用户“michael”(/var/lib 有 drwxr-xr-x)具有执行权限,但无权在该文件夹上写入(根据您对下面的文件夹信息的评论)。您可以使用能够自由访问该文件夹的解决方案之一如下:

chown -R michael:root /path/to/the/directory
Run Code Online (Sandbox Code Playgroud)

答案的第二部分,你已经弄清楚了@Michael。使用以下命令下载 pgadmin:

wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v1.5/pip/pgadmin4-1.5-py2.py3-none-any.whl 
Run Code Online (Sandbox Code Playgroud)

然后执行命令:

pip install pgadmin4*.whl.
Run Code Online (Sandbox Code Playgroud)


meh*_*met 5

手动创建文件夹(或添加到 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"
Run Code Online (Sandbox Code Playgroud)

这不会将权限分配给整个/var/log,而是只分配给/var/log/pgadmin唯一的。