どちらのユーザーもfoobar
RHELfoobiz
の同じグループにいます。
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
コードは for を実行しますfoobar
が、foobiz
次のメッセージが表示されます。
import oracledb
ModuleNotFoundError: No module named 'oracledb'
質問:
foobiz
あなた自身のoracledb
モジュールが必要ですか?- をインストールせずに
foobiz
実行する方法は?my_python.py
oracledb
foobiz
答え1
ユーザーfoobarはカスタムPython検索パスを持つことができます。あなたができることの1つは次のとおりです。
import sys
sys.path
そして各出力を慎重に比較してください。
返品、耐性たとえば、図書館の場所を知らせることができます。
import inspect
import oracledb
inspect.getfile(oracledb)
これ文書また言及された内容:
Linuxでは、呼び出し時にlib_dirパラメータを渡さないでください。 LinuxのOracleクライアントライブラリは、Pythonプロセスが開始される前にシステムライブラリの検索パスに配置する必要があります。
詳しくは見ていませんが、Pythonライブラリだけでは十分ではないようです。 Oracleクライアントライブラリも必要です。ユーザー固有のディレクトリにインストールされ、他のユーザーがシステム全体で使用できない可能性があります。ただ考えるだけです。これは、ライブラリのインストール方法によって引き起こされる問題かもしれません。