我有一个宠物项目,我是从一个Jupyter笔记本开始的。到目前为止,我把所有Python代码都放在了笔记本上。
一开始一切都很好。但随着时间的推移,我在笔记本上写的代码变得越来越复杂。现在它几乎无法管理:当我发现错误时,我需要
我想把代码分成两部分:
让我们假设笔记本在我的本地机器上运行(视窗7;Jupyter在Anaconda中运行),Python文件也存储在本地。
使用IPython文件中的代码以便我可以频繁快速地修改此代码的好方法是什么?
我所说的“频繁且快速”是指“尽可能少的步骤将更改从Python文件传播到笔记本”。理想的解决方案是,我更改一个Python文件,运行一个命令,然后这些更改可以在Jupyter笔记本中使用。或者,使用一个更古老的类比,我希望它像PHP一样——您经常更改代码,并立即看到更改的结果。
更新1:我尝试在单元格中使用%load TestClass.py的解决方案。
问题是,如果文件发生更改,单元格内容不会更新。
例子:
让我们假设我把文本
class TestClass:
def __init__(self):
print("TestClass constructor")
进入TestClass。py
。然后,我在Jupyter笔记本中创建了一个单元格,其中包含%LoadTestClass。py
。当我执行该单元格时,来自TestClass的代码将被删除。py
被导入,行%加载TestClass。py
被注释掉。
现在我将TestClass.py
更改为
class TestClass:
def __init__(self):
print("TestClass constructor")
print("change")
当我执行单元格时,它的内容没有改变。
你在写:
行%load TestClass.py被注释掉。
我明白,你把它评论出来了。为什么?重新运行导入并更新类。
顺便提一下运行TestClass。py也应该这样做——至少在Jupyter NB。
我一直在研究类似的问题。如果您使用Jupyterlab而不是旧的Jupyter笔记本,您可以同时打开多个nb,编辑保存函数的一个,然后在另一个中重新启动内核,以便在导入时进行更新。不幸的是,你失去了所有的变量,需要再次运行整个笔记本,但是它允许第一个nb中的变化推进到第二个nb中。
这不是一个完美的答案,但它让我能够继续从事我的项目。
听起来IPython的自动加载扩展正是您所需要的。简单的插头
%load_ext autoreload
%autoreload 2
在Jupyter笔记本的第一个单元格中,导入的python模块会在更改时自动重新加载。您还可以对已安装的python包进行更改,前提是您已经安装了可编辑的python包。
问题内容: 典型地,一个运行或或在终端局部地启动一个Jupyter笔记本网络服务器(和打开的浏览器中的URL)。使用conda 和conda环境时, 最常见的错误消息似乎是:在conda环境中安装XYZ软件包后, 可以在其中启动的python控制台中运行,但是在 Jupyter笔记本中 运行相同的代码 将导致ImportError 。 这个问题已经被问过很多次了,但是没有一个很好的答案,大多数Q&
当我运行这个代码时,我有一个警告。 !!! 警告如下!!! C:\Users#\Anaconda3\lib\site packages\sklearn\svm\base.py:193:futurearning: 如何避免这种警告?或者如何将gamma的值设置为缩放?
我一直试图在Jupyter笔记本上显示gif,但遇到了一些麻烦。我一直得到一个空白的图像文件。 我已经尝试使用这个GitHub存储库中的html。 而且 以上这些到目前为止都没有奏效。 谢谢
我在Windows 10上运行Anaconda,并使用Jupyter Notebook进行机器学习项目。 我最近开始意识到Conda中的虚拟环境。 我使用以下命令在conda中创建了一个虚拟环境 激活环境 ipykernel中安装的环境(不确定使用的术语是否正确) 现在环境是可见的jupyter笔记本,但当我启动它我得到
我已经从Kaggle(视频游戏与评级)下载了一个数据库,但我不能用我的木星笔记本打开它。 我从这两行代码开始,但它给了我一个错误。。。 ()1中的UnicodeDecodeError回溯(最后一次调用)作为pd导入---- ~\Anaconda3\lib\site-包\熊猫\io\parsers.pyparser_f(filepath_or_buffer,sep,分隔符,标头,名称,index_c
我回顾了各种相关问题,包括 如何让MathJax在ipython笔记本中启用mhchem扩展 但我不能让它工作。。。 我的测试用例很简单 期待直立的$\pi$,但目前只是'\uppi'回来了。 我已经尝试了以下使用细胞魔法 这会生成