Python 名称 'os' 未定义,即使它已显式导入

标签 python python-3.x

我有一个名为 imtools.py 的模块,其中包含以下函数:

import os 

def get_imlist(path):
    return[os.path.join(path,f) for f in os.listdir(path) if f.endswith('.jpg')]

当我尝试使用 import imtoolsimtools.get_imlist(path) 从控制台调用函数 get_imlist 时,我收到以下信息错误:

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\...\PycharmProjects\first\imtools.py", line 5, in get_imlist
NameError: name 'os' is not defined

我是 Python 的新手,我肯定在这里遗漏了一些简单的东西,但无法弄清楚。如果我在控制台定义函数,它就可以正常工作。这个模块脚本的具体历史如下:一开始写的时候没有import os语句,后来看到上面的错误后在脚本中加入了import os语句它被重新保存了。相同的控制台 session 用于在保存前后运行脚本。

最佳答案

根据一些小提示,我猜测您的代码最初没有 import os 行,但您在源代码中更正了这一行并重新导入了文件。

问题是 Python 缓存了模块。如果您import 不止一次,每次您返回同一个模块时——它不会被重新读取。您在第一次导入时所犯的错误将继续存在。

要在编辑后重新导入 imtools.py 文件,您必须使用 reload(imtools)

关于Python 名称 'os' 未定义,即使它已显式导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27747288/

相关文章:

python - 仅向时间添加 n 秒(无日期)

python - 检测并发中失败的任务。futures

python-3.x - 无法使用Gstreamer-Python设置两个摄像机的参数

Python 从字符串创建模块并运行该模块

python - 将函数分配为python中有限状态机的变量

python - 关于python中dir和import的问题

python - 检查两个条件是否为真最快的方法是什么?

python - 意图调用另一个意图(没有后续意图)

python - 用于查找行为奇怪的回文的正则表达式

python - 属性错误 : 'Cycler' object has no attribute 'change_key'