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 ответов:
Ошибка разрешения означает, что пользователь "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