ModuleNotFoundError: Python 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-линия на Python._pth файл или относительный путь к нему из python._pth месте. в моем примере, это работает с:
python36.zip
DLLs
Lib
.
..\test
import site
другое, более простое решение, если у вас нет установленного системой python: переименуйте "python._pth "файл, рядом с" python.exe", как " pythonzz._pth"
сопровождающий Python "Windows" только что написал, что более простое решение должно быть в порядке и с Python-3.6.0.