O Python 3 não vê pacotes instalados pelo root sob diferentes usuários

0

Eu instalei psycopg2 para o Python 3 no CentOS 7.3 como root. Quando eu su to 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: [email protected]
License: LGPL with exceptions or ZPL
Location: /opt/rh/rh-python34/root/usr/lib64/python3.4/site-packages
Requires:

Observe que pip o instalou em um diretório que indica root ( /opt/rh/rh-python34/root/usr/lib64/python3.4/site-packages ).

No entanto, quando mudo para um usuário diferente, o Python não vê esse pacote - python3 -m pip show psycopg2 não retorna nada. Se eu tentar executar um script py que importe, recebo um erro. Eu confirmei que eu poderia ir nesse diretório como um usuário não-root e ler arquivos.

Como posso fazer um pacote python, que foi instalado pelo root, visível para todos os outros usuários?

    
por amphibient 17.02.2017 / 21:30

2 respostas

1

Primeiro, remova psycopg2 package ( sudo pip uninstall psycopg2 ) e, em seguida:

1:

Instale o pacote python-psycopg2 dos repositórios:

$ sudo yum install python-psycopg2 

OR

2:

Altere umask para 022 e instale psycopg2

$ umask 022
$ sudo pip install psycopg2
    
por 17.02.2017 / 21:50
1

Foi um problema de pathing em python. Eu resolvi isso introduzindo uma variável de sistema PYTHONPATH definida como /opt/rh/rh-python34/root/usr/lib64/python3.4/site-packages :

 export PYTHONPATH=/opt/rh/rh-python34/root/usr/lib64/python3.4/site-packages
    
por 18.02.2017 / 00:20