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'

У меня закончились идеи, что это может быть за проблема, и я был бы признателен за новое вдохновение.

140   1  

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

"http://bugs.python.org/issue29578?@ok_message=msg%20287921%20created%0Aissue%2029578%20message_count%2C%20messages%20edited%20ok&@template=item"

Другое, более простое решение, если у вас нет установленного в системе python: переименуйте " python._pth "файл, рядом с" python.exe", как " pythonzz._pth "

Сопровождающий Python "Windows" только что написал, что более простое решение должно быть в порядке и с Python-3.6.0.

    Ничего не найдено.

Добавить ответ:
Отменить.