Модуль Python недоступен другому пользователю в той же группе

Модуль Python недоступен другому пользователю в той же группе

Оба пользователя foobarнаходятся foobizв одной группе на 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

Код выполняется для foobar, но foobizвыводится следующее сообщение:

import oracledb
ModuleNotFoundError: No module named 'oracledb'

Вопросы:

  • Нужен ли foobizсобственный oracledbмодуль?
  • Как мне foobizзапустить run my_python.pyбез oracledbустановки foobiz?

решение1

Пользователь foobar может иметь собственный путь поиска Python. Одна из вещей, которую вы можете сделать, это:

import sys

sys.path 

и тщательно сравните соответствующие результаты.

Также,самоанализмогу сказать вам местоположение библиотеки, например:

import inspect
import oracledb

inspect.getfile(oracledb)

Theдоктакже упомянуть:

В Linux не передавайте параметр lib_dir в вызове: библиотеки клиента Oracle в Linux должны находиться в системном пути поиска библиотек до запуска процесса Python.

Не смотрел подробно, но похоже, что одной только библиотеки Python недостаточно, должны присутствовать также библиотеки Oracle Client. Возможно, они были установлены в каталоге, специфичном для пользователя, и поэтому не доступны другим пользователям в масштабах всей системы — просто мысль. Это может быть проблема, вытекающая из способа установки библиотек.

Связанный контент