Módulo Python não disponível para outro usuário no mesmo grupo

Módulo Python não disponível para outro usuário no mesmo grupo

Ambos os usuários foobarestão foobizno mesmo grupo no RHEL.

foobar$ python3 -m pip list

Package           Version
----------------- -------
oracledb          1.4.2
pip               21.3.1

foobiz$ python3 -m pip list
 
Package           Version
----------------- -------
pip               21.3.1

foobar$ head -3 my_python.py
from datetime import datetime
import time
import oracledb

O código é executado for foobar, mas foobizrecebe a seguinte mensagem:

import oracledb
ModuleNotFoundError: No module named 'oracledb'

Questões:

  • Precisa de módulo foobizpróprio oracledb?
  • Como posso foobizexecutar o run my_python.pysem instalar oracledbo for foobiz?

Responder1

O usuário foobar pode ter um caminho de pesquisa Python personalizado. Uma coisa que você pode fazer é:

import sys

sys.path 

e compare os respectivos resultados cuidadosamente.

Também,introspecçãopode lhe dizer a localização da lib, por exemplo:

import inspect
import oracledb

inspect.getfile(oracledb)

Odocumentomencionar também:

No Linux, não passe o parâmetro lib_dir na chamada: as bibliotecas Oracle Client no Linux devem estar no caminho de pesquisa da biblioteca do sistema antes do início do processo Python.

Não olhei em detalhes, mas parece que a biblioteca Python por si só não é suficiente, as bibliotecas Oracle Client também devem estar presentes. Possivelmente eles foram instalados em um diretório específico do usuário e, portanto, não estão disponíveis em todo o sistema para outros usuários - apenas uma ideia. Este pode ser um problema decorrente da forma como as bibliotecas foram instaladas.

informação relacionada