同じグループの他のユーザーはPythonモジュールを使用できません。

同じグループの他のユーザーはPythonモジュールを使用できません。

どちらのユーザーもfoobarRHELfoobizの同じグループにいます。

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.pyoracledbfoobiz

答え1

ユーザーfoobarはカスタムPython検索パスを持つことができます。あなたができることの1つは次のとおりです。

import sys

sys.path 

そして各出力を慎重に比較してください。

返品、耐性たとえば、図書館の場所を知らせることができます。

import inspect
import oracledb

inspect.getfile(oracledb)

これ文書また言及された内容:

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

詳しくは見ていませんが、Pythonライブラリだけでは十分ではないようです。 Oracleクライアントライブラリも必要です。ユーザー固有のディレクトリにインストールされ、他のユーザーがシステム全体で使用できない可能性があります。ただ考えるだけです。これは、ライブラリのインストール方法によって引き起こされる問題かもしれません。

関連情報