Python-Modul für anderen Benutzer in derselben Gruppe nicht verfügbar

Python-Modul für anderen Benutzer in derselben Gruppe nicht verfügbar

Beide Benutzer foobarbefinden foobizsich in derselben Gruppe auf 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

Der Code wird ausgeführt foobar, erhält aber foobizdie folgende Meldung:

import oracledb
ModuleNotFoundError: No module named 'oracledb'

Fragen:

  • Benötigt foobizes ein eigenes oracledbModul?
  • Wie kann ich es foobizausführen my_python.py, ohne oracledbes installieren zu müssen foobiz?

Antwort1

Der Benutzer foobar verfügt möglicherweise über einen benutzerdefinierten Python-Suchpfad. Sie können Folgendes tun:

import sys

sys.path 

und vergleichen Sie die jeweiligen Ergebnisse sorgfältig.

Auch,Selbstbeobachtungkann Ihnen den Speicherort der Bibliothek mitteilen, z. B.:

import inspect
import oracledb

inspect.getfile(oracledb)

DerDokumentErwähnenswert sind auch:

Übergeben Sie unter Linux den Parameter lib_dir nicht im Aufruf: Die Oracle-Clientbibliotheken unter Linux müssen sich im Suchpfad der Systembibliothek befinden, bevor der Python-Prozess startet.

Ich habe nicht im Detail nachgeschaut, aber es sieht so aus, als ob die Python-Bibliothek allein nicht ausreicht, es müssen auch Oracle-Client-Bibliotheken vorhanden sein. Möglicherweise wurden sie in einem benutzerspezifischen Verzeichnis installiert und sind daher für andere Benutzer nicht systemweit verfügbar – nur so ein Gedanke. Dies könnte ein Problem sein, das auf die Art und Weise zurückzuführen ist, wie die Bibliotheken installiert wurden.

verwandte Informationen