
Ambos os usuários foobar
estão foobiz
no 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 foobiz
recebe a seguinte mensagem:
import oracledb
ModuleNotFoundError: No module named 'oracledb'
Questões:
- Precisa de módulo
foobiz
própriooracledb
? - Como posso
foobiz
executar o runmy_python.py
sem instalaroracledb
o forfoobiz
?
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.