OSError: [Errno 13] разрешение отклонено: '/var / lib/pgadmin'


Ubuntu 16.04.3

Я хотел бы установить pgAdmin:

Я hvae создал virtualenv с python 2.

Затем установите pgAdmin 4 v2. 0:

pip install https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v2.0/pip/pgadmin4-2.0-py2.py3-none-any.whl

Пора запускать 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'

Не могли бы вы дать мне пинка здесь?

5 5

5 ответов:

Ошибка разрешения означает, что пользователь "michael" (/var/lib имеет drwxr-xr-x) имеет разрешение на выполнение, но не имеет разрешения на запись в папку (в соответствии с вашим комментарием информации о папке ниже). Одним из решений, которое вы можете использовать, чтобы иметь свободный доступ к папке, будет что-то вроде:

chown -R michael:root /path/to/the/directory

Вторая часть ответа, вы поняли это @Michael. загрузка pgadmin с помощью команды:

wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v1.5/pip/pgadmin4-1.5-py2.py3-none-any.whl 

И затем выполнить команду:

pip install pgadmin4*.whl.

Если вы не хотите изменять разрешение на что-либо, вы всегда можете переопределить пути по умолчанию в 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')

Перезагрузите pgAdmin4 и проверьте.

Создайте папки вручную (или добавьте в свой сценарий установки 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"

Это не будет назначать разрешения для всего /var/log, а только для /var/log/pgadmin.

Я установил pgadmin4 v2. 1 на Ubuntu 16.04 и имел эту проблему. Смотрите последнюю строку кода. (Я запускаю это в файле сценария, ленивый.) Я также установил 2.0 таким образом, чтобы проверить, действительно ли это исправление. Мне не пришлось использовать config_local.py.

cd ..
cd home/vagrant

sudo apt-get install build-essential libssl-dev libffi-dev libgmp3-dev virtualenv python-pip libpq-dev python-dev

virtualenv .pgadmin4
cd .pgadmin4
source bin/activate

wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v2.1/pip/pgadmin4-2.1-py2.py3-none-any.whl

pip install pgadmin4-2.1-py2.py3-none-any.whl

# For this either use your remote host panel to edit the file or:
nano lib/python2.7/site-packages/pgadmin4/config.py
# Change:
# DEFAULT_SERVER = '0.0.0.0'

# Here is the trick.  Run this boot up file with sudo.  This fixed it for me.
sudo python lib/python2.7/site-packages/pgadmin4/pgAdmin4.py

У меня была такая же проблема с pgAdmin4 v3. 1, я просто написал sudo python pgAdmin4.py, и это сработало!.