3

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

我注意到的是 - 当我在 node.py 或 position.py 中进行更改时,检查模块然后使用 F5 运行它们,只要所有文件都打开,当我运行 main.py 时,更改就不会反映回来处于空闲状态。我注意到我必须手动关闭所有三个 .py 文件,然后关闭 IDLE,重新开始并运行 main.py 以查看在 node.py 和 position.py 中所做的更改。

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

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

4

2 回答 2

3

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

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

于 2012-10-10T20:51:10.203 回答
0

我按照 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

于 2013-04-02T12:54:08.147 回答