Python モジュールは同じグループ内の他のユーザーには利用できません

Python モジュールは同じグループ内の他のユーザーには利用できません

両方のユーザーfoobarfoobizRHEL 上で同じグループに属しています。

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

コードは に対して実行されますfoobarが、foobiz次のメッセージが表示されます。

import oracledb
ModuleNotFoundError: No module named 'oracledb'

質問:

  • foobiz独自のoracledbモジュールが必要ですか?
  • をインストールせずにfoobiz実行するにはどうすればよいですか?my_python.pyoracledbfoobiz

答え1

ユーザー foobar にはカスタム Python 検索パスがある場合があります。実行できることの 1 つは、次のとおりです。

import sys

sys.path 

それぞれの出力を注意深く比較します。

また、内省ライブラリの場所を教えてくれます。例:

import inspect
import oracledb

inspect.getfile(oracledb)

ドキュメントまた、以下についても言及する:

Linux では、呼び出しで lib_dir パラメータを渡さないでください。Linux 上の Oracle クライアント ライブラリは、Python プロセスが開始する前にシステム ライブラリ検索パスに存在している必要があります。

詳細に調べていませんが、Python ライブラリだけでは不十分のようです。Oracle クライアント ライブラリも存在する必要があります。おそらく、それらはユーザー固有のディレクトリにインストールされており、そのため他のユーザーはシステム全体で利用できない可能性があります。これは単なる考えです。これは、ライブラリのインストール方法に起因する問題である可能性があります。

関連情報