有多种方法可以为Python 3.x环境重新启用类似execfile的行为 - 在文档中和stackoverflow上,但我没有找到我的用例的确切替换。
我正在使用IPython,并且在Python 2.7.x execfile中用于运行脚本文件,就像我直接在IPython中输入完全相同的行一样。这包括:
import X as Y
语句也使Y在环境中可用迄今尚未完全奏效的常见解决方案:
from scriptfile import *
不满足#2和#4。对于函数定义,它也失败#6,因为重新发布导入不会更新函数 - 这可以通过reload(scriptfile)
调用来解决。exec(scriptfilehandle.read())
结构满足#5-7。通过一些修改也可以处理#2-4 - 但这会演变成一个冗长的定义,我现在无法回想起来,并且追溯仍然是一团糟。%run scriptfile
很不错,但至少在要求#2,#4和#5上不足。 %paste
在#5和#7上排除 - 并且每次调用都非常麻烦。你有任何我还没有听说过的解决方案吗?
我正在使用IPython + execfile同时玩数据,生成(很多)matplotlib数字,尝试的东西,...... 如果我喜欢我编写的一些代码,我会将代码片段放在脚本中。我正在做的一些例子:
另一方面,我不得不承认,我不是一名专业的程序员 - 我对Python在本地/全局变量中的内部运作以及真正发生的事情的见解在import
声明中,非常有限。
任何帮助 - 可能是我的问题的解决方案或有用的解释 - 非常感谢!