Q:

Проблемы с PYTHONPATH

Пытаюсь настроить pythonpath для импорта собственных модулей.
В файле .bashrc добавил следующие строки
export PYTHONPATH="${PYTHONPATH}:/root/dev/pinger:/root/new_bots/bots_utils"

В supervisor conf.d:
[environment]
PYTHONPATH=${PYTHONPATH}:/root/dev/pinger:/root/new_bots/bots_utils/

Но при запуске supervisor выдает ошибку No module named 'bots_utils'
Структура следующая:
bot_utils:
     -case1:
         -script.py
     -case2

Ошибку выдает при запросе from bot_utils.case1.script import script.
Что не так? Использую Ubuntu18.04

A:

В pythonpath нужно добавлять путь, где лежит модуль (или несколько модулей), а не путь самого модуля (т.е. нужно добавлять /root/new_bots/, а не /root/new_bots/bots_utils/)
Т.к. вы ничего не написали про содержимое модуля script.py, то будем считать, что в нем нет объекта с именем script. Если это так, то импортировать модуль нужно как
from bot_utils.case1 import script
Если нужно импортировать объект из модуля script.py, то нужно импортировать так: from bot_utils.case1.script import func1

Ниже рабочий пример
Дерево директорий (new_bots находится в ~/stackoverflow):

script.py:
def func1():
    print("func1 executed")

print("script.py imported")

Тестовый модуль, может находиться в любой директории:
import sys
import os

# Добавляю в pythonpath так, чтобы не портить глобальное значение
sys.path.append(os.path.expanduser('~/stackoverflow/new_bots'))

from bot_utils.case1.script import func1

func1()

Результат запуска:
script.py imported
func1 executed

