Python 模組不可用於同一組中的其他用戶

Python 模組不可用於同一組中的其他用戶

兩個使用者foobarfoobiz都在 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

程式碼執行 for foobar,但foobiz收到以下訊息:

import oracledb
ModuleNotFoundError: No module named 'oracledb'

問題:

  • foobiz需要自己的oracledb模組嗎?
  • 如何在不安裝for 的情況下foobiz執行 run ?my_python.pyoracledbfoobiz

答案1

使用者 foobar 可能有一個自訂的 Python 搜尋路徑。你可以做的一件事是:

import sys

sys.path 

並仔細比較各自的輸出。

也,內省可以告訴你庫的位置,例如:

import inspect
import oracledb

inspect.getfile(oracledb)

文件也提到:

在 Linux 上,請勿在呼叫中傳遞 lib_dir 參數:在 Python 程序啟動之前,Linux 上的 Oracle 用戶端程式庫必須位於系統函式庫搜尋路徑中。

沒有詳細查看,但看起來僅 Python 庫是不夠的,Oracle 用戶端庫也必須存在。它們可能已安裝在特定於使用者的目錄中,因此無法在系統範圍內供其他使用者使用 - 只是一個想法。這可能是由庫的安裝方式引起的問題。

相關內容