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 客户端库也必须存在。它们可能已安装在特定于用户的目录中,因此无法在系统范围内供其他用户使用 - 只是一个想法。这可能是由库的安装方式引起的问题。

相关内容