我经常在Python Interpreter中测试我的模块,当我看到错误时,我会快速更新.py文件.但是如何让它反映在口译员身上呢?所以,我一直在退出并重新进入解释器,因为重新导入文件对我来说不起作用.
我知道它可以做到,但我永远不会记得如何.
如何在python中重新导入模块?方案如下:我以交互方式导入模块并修改它,但后来我遇到了错误.我修复.py文件中的错误然后我想重新导入修复模块而不退出python.我该怎么做 ?
我正在尝试重新加载我已经在Python 3中导入的模块.我知道你只需要导入一次并import再次执行命令就不会做任何事情.
执行reload(foo)是给出这个错误:
Traceback (most recent call last):
    File "(stdin)", line 1, in (module)
    ...
NameError: name 'reload' is not defined
错误是什么意思?
我有一个 foo.py
def foo():
    print "test"
在IPython中我使用:
In [6]:  import foo
In [7]:  foo.foo()
test
然后我改为foo():
def foo():
    print "test changed"
在IPython中,调用的结果仍然是test:
In [10]:  import foo
In [11]:  foo.foo()
test
然后我用:
In [15]: del foo
In [16]:  import foo
In [17]:  foo.foo()
test
我删除了foo.pyc相同的文件夹foo.py存在,但仍然没有运气.
我可以知道如何在运行时重新导入更新的代码吗?
我知道如何在常规Python解释器会话中重新加载常规Python模块.这个问题记录了如何做得很好:
出于某种原因,我在Django的"manage.py shell"解释器会话中遇到了麻烦.要重新创建我的问题,请启动此处的基本Django教程:
创建"民意调查"应用程序和"民意调查"类后,通过"manage.py shell"启动解释器并将"民意调查"应用程序导入其中.
import polls.models as pm
创建一个新的"民意调查"对象:
p = pm.Poll()
到目前为止一切顺利.现在回到您的源代码并添加任意方法或属性.例如,我添加了:
def x(self):
    return 2+2
现在回到解释器并"重新加载"模块:
reload(pm)
现在尝试使用您的新方法或属性:
p1 = pm.Poll()
p1.x()
你会收到这条消息:
'Poll' object has no attribute 'x'
是什么赋予了?我还尝试重新运行import命令,使用不同的语法导入模块,删除对任何"Poll"对象或"Poll"类的所有引用.我也尝试过使用IPython解释器和普通的Python(v2.6)解释器.似乎没什么用.
在常规解释器会话中使用与任意Python模块相同的技术可以很好地工作.我似乎无法让它在Django的"shell"会话中工作.
顺便说一句,如果它有任何区别,我在Ubuntu 9.04机器上这样做.
我对NumPy/SciPy很新.但是现在,我已经开始非常积极地使用它进行数值计算,而不是使用Matlab.
对于一些简单的计算,我只是在交互模式而不是编写脚本.在这种情况下,是否有任何方法可以不导入已导入的某些模块?当我编写python程序时可能不需要unimporting,但在交互模式下,它是需要的.
我在这个有用的问答中看到了人们可以使用的,reload(whatever_module)或者在Python 3中imp.reload(whatever_module).
我的问题是,如果我说from whatever_module import *要导入怎么办?然后我whatever_module在使用时无需参考reload().你们是否会因为将整个模块投入全局命名空间而对我大喊大叫?:)
我想从另一个ipython-notebook导入一个func.说,
common_func.ipnb 具有 def func_a()
当我创建一个新笔记本时,如何func_a从另一个笔记本中访问哪个笔记本,但是在同一个文件夹和相同的ipython实例中?
谢谢!
跟进有关重新加载的模块这个问题,如何从一个改变模块加载特定的功能?
伪代码:
from foo import bar
if foo.py has changed:
    reload bar
我想知道是否有办法重新启动ipython内核而不关闭它,就像笔记本中存在的内核重启功能一样.我试过,%reset但似乎没有清除进口.
python ×9
ipython ×3
reload ×2
django ×1
import ×1
kernel ×1
methods ×1
overloading ×1
python-3.x ×1
runtime ×1