Я создал свой собственный пакет с именем «XXX» на своем компьютере, установив файл __init__.py
в папке C:\path\to\module\XXX
, который содержит мой скрипт Python. Затем я вручную добавил C:\path\to\module\XXX
в свой путь к python. Когда я запускаю python в командной строке cmd и пытаюсь импортировать модуль, он терпит неудачу. Когда я печатаю sys.path
, он содержит C:\path\to\module\XXX
. Если я пытаюсь загрузить некоторые другие личные модули, возникает та же проблема, но когда я пытаюсь загрузить не свой модуль, установленный с pip
(т.е. numpy
), он работает отлично. Итак, я предполагаю, что по какой-то причине python больше не просматривает мой путь к python для загрузки модуля.
Я использую anaconda с python 3.6.5 с виртуальной средой в Windows 7. Python устанавливается с anaconda через репозиторий conda-forge.
Я протестировал эту проблему с несколькими подходами, сначала запустив приведенный ниже скрипт с Pycharm, а затем с Spider. Затем я использовал приглашение anaconda для запуска команд вручную, активирующих сначала мою виртуальную среду. Наконец, я выполнил команды в командной строке DOS с помощью python. Как бы то ни было, результаты были одинаковыми. Эта ошибка возникла после установки fbprohete в моей виртуальной среде. До этого я мог импортировать свои модули. Я попытался удалить этот модуль, но проблема осталась прежней. Во время установки fbprohet добавляется много беспорядка. После установки я запустил команду conda clean для очистки среды, но это не помогло. Я подозреваю, что сейчас что-то повреждено, но я бы хотел избежать переустановки всего. Если у вас есть идея, где искать, какой именно модуль должен быть поврежден, буду рад узнать об этом больше.
import sys
sys.path
['', 'C:\path\to\module\XXX', ...]
import XXX
ModuleNotFoundError: No module named 'XXX'
В приведенном выше сценарии я ожидаю, что модуль будет загружен без ошибок, поскольку путь к пакету находится в пути python, а __init__.py
находится в папке C:\path\to\module\XXX
Спасибо!
sys.path
содержит каталоги, которые python просматривает в для поиска модуля. У вас в системеC:\path\to\module\XXX\XXX.py
илиC:\path\to\module\XXX\XXX\__init__.py
? Если нет, вы, вероятно, захотите иметьC:\path\to\module
и неC:\path\to\module\XXX
вsys.path
- person Giacomo Alzetta   schedule 11.09.2019C:\path\to\module\XXX
наC:\path\to\module
и все заработало. Это было немного глупо с моей стороны, извините... - person Cunningham   schedule 11.09.2019