El módulo Python no está disponible para otro usuario del mismo grupo

El módulo Python no está disponible para otro usuario del mismo grupo

Ambos usuarios foobarestán foobizen el mismo grupo en 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

El código se ejecuta para foobar, pero foobizrecibe el siguiente mensaje:

import oracledb
ModuleNotFoundError: No module named 'oracledb'

Preguntas:

  • ¿ foobizNecesita su propio oracledbmódulo?
  • ¿Cómo puedo foobizejecutar run my_python.pysin instalar oracledbfor foobiz?

Respuesta1

El usuario foobar puede tener una ruta de búsqueda personalizada de Python. Una cosa que podrías hacer es:

import sys

sys.path 

y comparar cuidadosamente los resultados respectivos.

También,introspecciónPuede indicarle la ubicación de la biblioteca, por ejemplo:

import inspect
import oracledb

inspect.getfile(oracledb)

Eldocmencionar también:

En Linux, no pase el parámetro lib_dir en la llamada: las bibliotecas del cliente Oracle en Linux deben estar en la ruta de búsqueda de bibliotecas del sistema antes de que comience el proceso de Python.

No lo he mirado en detalle, pero parece que la biblioteca de Python por sí sola no es suficiente; las bibliotecas del cliente de Oracle también deben estar presentes. Posiblemente se hayan instalado en un directorio específico del usuario y, por lo tanto, no estén disponibles en todo el sistema para otros usuarios; es sólo una idea. Esto podría ser un problema derivado de la forma en que se instalaron las bibliotecas.

información relacionada