Я установил psycopg2
для Python 3 на CentOS 7.3 как root. Когда я su
в root
> python3 -m pip show psycopg2
Name: psycopg2
Version: 2.6.2
Summary: psycopg2 - Python-PostgreSQL Database Adapter
Home-page: http://initd.org/psycopg/
Author: Federico Di Gregorio
Author-email: fog@initd.org
License: LGPL with exceptions or ZPL
Location: /opt/rh/rh-python34/root/usr/lib64/python3.4/site-packages
Requires:
, обратите внимание, что pip
установил его в каталог, который указывает root ( / opt / rh / rh-python34 / root / usr / lib64 / python3.4 / site-packages
).
Однако, когда я переключаюсь на другого пользователя, python не видит этот пакет - python3 -m pip show psycopg2
ничего не возвращает. Если я попытаюсь запустить скрипт py, который его импортирует, я получаю сообщение об ошибке. Я подтвердил, что могу войти в этот каталог как пользователь без полномочий root и читать файлы.
Как сделать пакет python, установленный пользователем root, видимым для всех других пользователей?
Это была проблема с путями Python. Я решил эту проблему, введя системную переменную PYTHONPATH
, установленную на /opt/rh/rh-python34/root/usr/lib64/python3.4/site-packages
:
export PYTHONPATH=/opt/rh/rh-python34/root/usr/lib64/python3.4/site-packages
Прежде всего удалите psycopg2
( sudo pip uninstall psycopg2
), а затем:
1:
Установить пакет python-psycopg2
из репозиториев:
$ sudo yum install python-psycopg2
ИЛИ
2:
Измените umask
на 022
и установите psycopg2
$ umask 022
$ sudo pip install psycopg2