Модуль не найден в том же каталоге, что и запущенный скрипт, когда установлен как пакет - PullRequest
0 голосов
/ 24 января 2020

Я установил пользовательский пакет, названный pytable, используя python setup.py develop в папке пакета. Иерархия пакетов выглядит следующим образом:

  • pytable /
    • __ pycache __ /
    • MANIFEST.in
    • pytable /
      • __ init__ .py
      • __ pycache __ /
      • pytable.py (основной модуль)
      • tableError.py (класс с пользовательскими ошибками)
      • testScript.py (импортирует pytable .py)
    • README.md
    • setup.py

Модуль tableError.py импортируется в модуль pytable.py и работает нормально при запуске testScript.py без установки pytable с python, но когда я устанавливаю его с помощью вышеуказанной команды и запускаю import pytable from pytable где-нибудь еще, он выдает ошибки.

ModuleNotFoundError: нет модуля с именем 'tableError'

1 Ответ

0 голосов
/ 26 января 2020

Проблема заключалась в том, что после установки пакета Python не знал, где искать, чтобы найти зависимые модули. Добавление ...

import os
import sys
dir_path = os.path.dirname(os.path.realpath(__file__))
sys.path.append(dir_path)

... в начало pytable.py указывает Python искать в том же каталоге, где он установлен для tableError.py.

...