ModuleNotFoundError: Python 3.6 does not find modules while Python 3.5 does
ModuleNotFoundError: Python 3.6 does not find modules while Python 3.5 does
我想将我的 python 版本从 3.5 升级到 3.6。由于我使用的是 WinPython,因此我已经下载并安装了最新版本,就像我之前使用 3.5 版一样。
但是,如果我使用 3.6 版,每当我导入一个自创建的模块时,我都会得到一个 ModuleNotFoundError
。一个最小的例子:我创建了一个文件 t1.py
,它只包含一个 pass
语句和一个文件 t2.py
,其中包含以下代码:
import t1
print("done")
两个文件都在同一个文件夹中D:\MyProject\src
。现在,当我 运行 带有 python 3.5 的文件时,一切正常:
'C:\Program Files\WinPython-64bit-3.5.1.2\python-3.5.1.amd64\python.exe' D:\MyProject\src\t2.py
done
然而,python 3.6 我得到
'C:\Program Files\WinPython-64bit-3.6.0.1Qt5\python-3.6.0.amd64\python.exe' D:\MyProject\src\t2.py
Traceback (most recent call last):
File "D:\MyProject\src\t2.py", line 6, in <module>
import t1
ModuleNotFoundError: No module named 't1'
我 运行 不知道问题可能是什么,希望得到新的启发。
这行得通吗?在 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")
如果您不想修改源代码,则必须在 Python._pth 文件中添加 "D:\MyProject\src" 行,或者从 python._pth 位置添加相对路径。在我的示例中,它适用于:
python36.zip
DLLs
Lib
.
..\test
import site
其他更简单的解决方案,如果您没有 system-installed python:将 "python._pth" 文件重命名为 "python.exe" 旁边的 "pythonzz._pth"
Python "Windows" 维护者刚刚写道,更简单的解决方案也适用于 Python-3.6.0.
我想将我的 python 版本从 3.5 升级到 3.6。由于我使用的是 WinPython,因此我已经下载并安装了最新版本,就像我之前使用 3.5 版一样。
但是,如果我使用 3.6 版,每当我导入一个自创建的模块时,我都会得到一个 ModuleNotFoundError
。一个最小的例子:我创建了一个文件 t1.py
,它只包含一个 pass
语句和一个文件 t2.py
,其中包含以下代码:
import t1
print("done")
两个文件都在同一个文件夹中D:\MyProject\src
。现在,当我 运行 带有 python 3.5 的文件时,一切正常:
'C:\Program Files\WinPython-64bit-3.5.1.2\python-3.5.1.amd64\python.exe' D:\MyProject\src\t2.py
done
然而,python 3.6 我得到
'C:\Program Files\WinPython-64bit-3.6.0.1Qt5\python-3.6.0.amd64\python.exe' D:\MyProject\src\t2.py
Traceback (most recent call last):
File "D:\MyProject\src\t2.py", line 6, in <module>
import t1
ModuleNotFoundError: No module named 't1'
我 运行 不知道问题可能是什么,希望得到新的启发。
这行得通吗?在 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")
如果您不想修改源代码,则必须在 Python._pth 文件中添加 "D:\MyProject\src" 行,或者从 python._pth 位置添加相对路径。在我的示例中,它适用于:
python36.zip
DLLs
Lib
.
..\test
import site
其他更简单的解决方案,如果您没有 system-installed python:将 "python._pth" 文件重命名为 "python.exe" 旁边的 "pythonzz._pth"
Python "Windows" 维护者刚刚写道,更简单的解决方案也适用于 Python-3.6.0.