Python3.7 — модуль не найден, хотя он указан в sys.path

#python #package

#python #пакет

Вопрос:

Я пытаюсь импортировать некоторые пользовательские модули / пакеты, но получаю сообщение об ошибке «ModuleNotFoundError: нет модуля с именем ‘reader'».

Я убедился, что абсолютный путь к каталогу моего пользовательского пакета указан в sys.path:

 >>> os.getcwd()
'C:\Python Projects\reader'
>>> sys.path.append('C:\Python Projects\reader')
>>>
>>> sys.path
['', 'C:\Users\User\AppData\Local\Programs\Python\Python37\python37.zip', 'C:\Users\User\AppData\Local\Programs\Python\Python37\DLLs', 'C:\Users\User\AppData\Local\Programs\Python\Python37\lib', 'C:\Users\User\AppData\Local\Programs\Python\Python37', 'C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages', 'C:\Python Projects\reader']
>>>
>>> import reader
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'reader'
 

Кроме того, все пути, перечисленные в sys.path (кроме » и C:Python Проекты reader) были добавлены в Переменные среды> Системные переменные (я использую Win10).

Есть ли что-то еще, что я должен сделать, чтобы успешно импортировать пользовательские пакеты в мои проекты?

Спасибо

Комментарии:

1. reader это только модуль, если reader/__init__.py он существует, и в этом случае C:\Python Projects это каталог для добавления пути. В противном случае reader это просто каталог, в котором нужно искать модули, а не сам модуль.

2. Если вы хотите протестировать свой проект в режиме реального времени во время разработки, вам может потребоваться добавить родительский каталог в PATH, а не reader напрямую. Вы также можете создать пакет, создать колесо и установить его на свой python. (см. pypa или этот документ )

Ответ №1:

 sys.path.append('C:\Python Projects')
 

Затем import reader будет искать reader under 'C:Python Projects' , т.Е. Он будет проверять 'C:Python Projectsreader' . В настоящее время он тестируется 'C:Python Projectsreaderreader' .