目前我正在开发一个包含子模块并使用numpy/scipy的python项目.Ipython用作交互式控制台.不幸的是,我对我现在使用的工作流程不是很满意,我将不胜感激.
在IPython中,框架由一个简单的import命令加载.但是,通常需要更改框架的一个子模块中的代码.此时已经加载了一个模型,我使用IPython与它进行交互.
现在,框架包含许多相互依赖的模块,即在最初加载框架时,主模块正在导入和配置子模块.只有在使用重新加载模块时才会执行对代码的更改reload(main_mod.sub_mod).这很麻烦,因为我需要使用完整路径单独重新加载所有已更改的模块.如果reload(main_module)还要重新加载所有子模块,但没有重新加载numpy/scipy 将是非常方便的..
在将函数导入ipython之后,当我在ipython之外修改它们时,如何重新加载它们?
在开始之前,我想说我不是程序员; 我是一个极客和一个工程师.因此,我喜欢编码并在学术上使用它.Stackoverflow教会了我80%以上关于python的知识.
我的问题是我需要手动重新加载我的脚本中的模块,首先将importlib导入我的终端,然后importlib.reload(*modulename*)再重新加载它们.当我通过我的IPython终端运行它时,我希望我的IPython终端能够自动重新加载我的python脚本中的模块.这个功能在以前的版本中使用magic命令提供%autoreload,这对我来说似乎不起作用.
我查看了@ IPython文档(链接1),尝试使用%load_ext autoreload命令(链接2)和import ipy_autoreload后跟%autoreload 2命令(链接3).我在stackoverflow中发现了超过4个其他答案,告诉我在链接2或3中执行操作; 它对我不起作用.如果有人知道如何恢复自动重载,它会让我的手指更快乐.
链接1:https://ipython.org/ipython-doc/3/config/extensions/autoreload.html
链接2:https://stackoverflow.com/a/18216967/5762140
链接3:https://stackoverflow.com/a/4765191/5762140
我正在使用Windows 7的64位安装.我有安装Anaconda3(3.18.9 64位)的IPython 4.0.1.我%load_ext autoreload可以根据要求提供有关我尝试使用时从IPython终端获取错误回溯的屏幕.
我有一个名为“Notebook.ipynb”的文件。我想将我自己的模块导入到patterns.py中。假设在 Patterns.py 中我有一个变量a=1。如果我在导入后在 Jupyter 中打印它,我期望得到 1。但是如果我将变量的值更改为patterns.py,Jupyter 将继续认为该变量a等于 1。当然,同时,我重新启动从patterns.py 导入变量的单元格
我需要做什么才能让 Jupyter 了解变量的值已更改?