ModuleNotFoundError: питон 3.6 не найти модули, в то время как Python 3.5 делает
Я хотел обновить свою версию python с 3.5 до 3.6. Поскольку я использую WinPython , я скачал и установил последнюю версию точно так же, как я делал это раньше с версией 3.5.
Однако, если я использую версию 3.6, я получаю ModuleNotFoundError всякий раз, когда я импортирую самостоятельно созданный модуль. Минимальный пример: я создал файл t1.py, который содержит только оператор pass и файл t2.py, содержащий следующий код:
import t1
print("done")
Оба файла находятся в одной папке D:MyProjectsrc. Теперь, когда я управляю файл с python 3.5, все работает нормально:
'C:Program FilesWinPython-64bit-3.5.1.2python-3.5.1.amd64python.exe' D:MyProjectsrct2.py
done
Однако, с python 3.6 я получаю
'C:Program FilesWinPython-64bit-3.6.0.1Qt5python-3.6.0.amd64python.exe' D:MyProjectsrct2.py
Traceback (most recent call last):
File "D:MyProjectsrct2.py", line 6, in <module>
import t1
ModuleNotFoundError: No module named 't1'
У меня закончились идеи, что это может быть за проблема, и я был бы признателен за новое вдохновение.
1 ответ:
Сработает ли это ? в t2.py
import os __path__=[os.path.dirname(os.path.abspath(__file__))] from . import t1 print("t2 done")Python-3.6 меняет свой способ работы, используя "python._pth " файл рядом с python.exe (вместо " pyvenv.cfg " в предыдущих версиях)
Если вы не хотите изменять свой источник, то вы должны добавить "D:\MyProject\src-линия на Питоне._pth файл, или относительный путь к нему из python._pth локация. в моем примере это работает с:
python36.zip DLLs Lib . ..\test import siteДругое, более простое решение, если у вас нет установленного в системе python: переименуйте " python._pth "файл, рядом с" python.exe", как " pythonzz._pth "
Сопровождающий Python "Windows" только что написал, что более простое решение должно быть в порядке и с Python-3.6.0.
Comments