【发布时间】:2018-12-26 10:32:30
【问题描述】:
Python 3.6.5
我知道这个:Why does my python not add current working directory to the path?
但问题在于他正在做一些更复杂的事情(指的是子文件夹但从主文件夹执行)。答案是要么简化事情,要么添加包定义。
所选答案甚至说:“这是添加的脚本目录”
但是,我的问题实际上更简单:我的脚本目录没有添加。
基本上,网上所有的教程都说:import mymodule
当我这样做时,我得到一个名称错误...
我的文件夹结构:
C:/Projects/interner
interner.py # this is the main program body
aux.py # this is the auxiliary file I would like to import into the above
我已经尝试过在 interner.py 中编写“import aux”,也尝试过使用交互式控制台:
cd c:/Projects/interner
python
import aux
无济于事(ModuleNotFoundError: No module named 'aux')
我的系统路径:
['C:\\Tools\\Python\\python365\\python36.zip', 'C:\\Tools\\Python\\python365']
(来自脚本内部和交互式控制台)
你能告诉我为什么我不能导入本地脚本吗?是因为我的 sys.path 缺少 PWD 吗?如果有,为什么会丢失?
编辑:这样做有助于调查:
>>> import os; print(os.listdir("."))
['aux.py', 'hw.py', 'interner.py', 'my_funcs.py']
【问题讨论】:
-
不,我认为 sys.path 没有当前工作目录是正常的。无论如何,它仍然应该在导入过程中被搜索。
import aux怎么样?这样效果更好吗? -
这是
import aux,而不是import aux.py。包含您的代码的目录被隐式添加到搜索路径中,即使您的工作目录不是。 -
不,请不要关闭,错字在问题中,不是我的代码
-
抱歉无法重现。如果
aux.py在当前目录中import aux有效。期间 -
我相信这是一个 Python 错误,特定于可嵌入(没有安装程序的 ZIP 文件)Windows 发行版。我已经提交了bugs.python.org/issue34841。
标签: python python-3.x import python-import