#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'
.