我是Matlab用户,也是Python新手。我想从外部文件中调用最简单的python函数。我编辑该函数,但我的Canopy解释器(IPython)无法识别新版本并继续调用旧文件!
假设此函数保存为mymodule.py:
def oper(x):
print(x)
主要文件是:
del mymodule.pyc
import mymodule
import imp
imp.reload(mymodule)
oper(5)
运行一次。更改打印(x)以打印(x + 1)。它一直执行print(x)。 如果我在主文件中定义函数oper(x),或者如果我关闭Canopy并重新打开它,或者如果我通过GUI运行>重置内核重置Canopy内核,那就可以了(但我无法编程)。
我还尝试了重载(mymodule)和%reset,但这并没有解决问题。理想情况下,我希望主文件中的Python命令可以完全重置工作区(内核,名称等)。我使用的是Canopy 1.7.4.3348,其中包括Python 2.7.11和IPython 4.0.0.9。
答案 0 :(得分:-1)
您需要像这样导入并使用
from mymodule import oper
oper(5)
或
import mymodule
mymodule.oper(5)
此外,在mymodule的同一目录中,在那里创建一个空的__init__.py
文件。这将让python知道它是一个模块。