【问题标题】:IDLE Python not detecting changesIDLE Python 未检测到更改
【发布时间】:2012-10-10 19:41:47
【问题描述】:

我正在使用 IDLE 编写一些小型 Python 程序。有两个类文件——node.py(节点类)和 position.py(位置类)。我在 main.py 中有我的主模块代码,我从中实例化 Node 和 Position 对象。

我注意到 - 当我在 node.py 或 position.py 中进行更改时,检查模块然后使用 F5 运行它们,只要所有文件在 IDLE 中打开。我注意到我必须手动关闭所有三个 .py 文件,然后关闭 IDLE,重新开始并运行 main.py 以查看在 node.py 和 position.py 中所做的更改。

这里有什么问题?我的环境变量设置不正确吗?我搜索了 SO 和在线,但没有找到满意的答案。

[详细信息:我在 Ubuntu 中使用 IDLE 版本 2.7.3。这三个 .py 文件和对应的 .pyc 字节码文件都在同一个目录下。这个目录在 sys.path 中也可以看到]

【问题讨论】:

    标签: python python-2.7


    【解决方案1】:

    发生的事情是我需要使用“import node”,但我使用的是 main.py 中的“from node import *”。这阻止了 main.py 链接到更新的节点模块!

    (很抱歉接受了我自己的答案,但可能有人以后也会遇到同样的问题,因此我正在上传解决方案)

    【讨论】:

      【解决方案2】:

      我按照 Matthew Plourde 的建议使用了 Ctrl+F6。使用 Python 3 和 IDLE,我可以打开我的测试文件和核心文件。然后我会在我的核心文件中修复我的测试文件中的断言报告的错误,但测试文件不会看到更改。我唯一的解决方案是关闭并重新打开,这很痛苦。 Ctrl+F6 确实有效。我在 Python3 中找不到 reload 函数。

      我收回此声明。使用 python3,如果由于缺乏管理员权限或其他一些安全原因而运行 IDLE 一个“-n”,则需要导入 imp 并使用 imp.reload(function) for IDLE 来获取对您正在编辑的其他 python 文件的任何更改和回忆。否则 python 不会检测到更改并且不会重新加载文件。

      http://docs.python.org/3.0/library/imp.html#imp.reload

      【讨论】:

        猜你喜欢
        • 2021-02-07
        • 2015-01-15
        • 1970-01-01
        • 2011-06-14
        • 1970-01-01
        • 2016-07-09
        • 2015-07-20
        相关资源
        最近更新 更多