我正在尝试运行一个启动python脚本的脚本.我得到一个ImportError:没有名为...的模块,但是,如果我启动ipython并通过解释器以相同的方式导入相同的模块,则接受该模块.
发生了什么,我该如何解决?我试图理解python如何使用PYTHONPATH,但我完全糊涂了.任何帮助将非常感谢.
我正在使用带有--pylab = inline的IPython,并且有时希望快速切换到交互式,可缩放的Matplotlib GUI以查看绘图(当您在终端Python控制台中绘制内容时弹出的那个).我怎么能这样做?最好不要离开或重启我的笔记本.
IPy笔记本中内联图的问题在于它们的分辨率有限,我无法放大它们以查看一些较小的部分.使用从终端开始的Maptlotlib GUI,我可以选择要放大的图形矩形,并相应地调整轴.我试过试验
from matplotlib import interactive
interactive(True)
Run Code Online (Sandbox Code Playgroud)
和
interactive(False)
Run Code Online (Sandbox Code Playgroud)
但那没有做任何事情.我也无法在线找到任何提示.
据我所知,%debug magic可以在一个单元格内进行调试.
但是,我有跨多个单元格的函数调用.
例如,
In[1]: def fun1(a)
def fun2(b)
# I want to set a breakpoint for the following line #
return do_some_thing_about(b)
return fun2(a)
In[2]: import multiprocessing as mp
pool=mp.Pool(processes=2)
results=pool.map(fun1, 1.0)
pool.close()
pool.join
Run Code Online (Sandbox Code Playgroud)
我尝试了什么:
我试着设置%debug在cell-1的第一行.但它甚至在执行cell-2之前立即进入调试模式.
我试图%debug在代码之前添加行return do_some_thing_about(b).但随后代码永远运行,永不停止.
在ipython笔记本中设置断点的正确方法是什么?
当我在IPython Notebook中运行以下内容时,我看不到任何输出:
import logging
logging.basicConfig(level=logging.DEBUG)
logging.debug("test")
Run Code Online (Sandbox Code Playgroud)
任何人都知道如何制作它所以我可以看到笔记本内的"测试"消息?
我正在使用tqdm我在Jupyter笔记本中运行的脚本中打印进度.我通过打印所有消息到控制台tqdm.write().但是,这仍然给我一个偏差的输出,如下所示:
也就是说,每次必须打印新行时,下一行都会打印一个新的进度条.当我通过终端运行脚本时,这不会发生.我怎么解决这个问题?
我试图在Ipython Notebook中使用pandas绘制一些数据,虽然它给了我对象,但它实际上并没有绘制图形本身.所以它看起来像这样:
In [7]:
pledge.Amount.plot()
Out[7]:
<matplotlib.axes.AxesSubplot at 0x9397c6c>
Run Code Online (Sandbox Code Playgroud)
之后图表应该遵循,但它根本不会出现.我已经导入了matplotlib,所以这不是问题所在.我需要导入任何其他模块吗?
有谁知道如何在jupyter笔记本上删除内核.我的jupyter笔记本上有R内核.最近内核在我打开一个新笔记本后就一直死掉.我用谷歌搜索,但没有得到满意的解决方案.提前致谢.
默认情况下,ipython笔记本输出仅限于底部的小子窗口.当输出很大时,这使得我们强制使用输出窗口附带的单独滚动条.
任何配置选项使其不受大小限制,而是运行与实际输出一样高?或者选择在创建后调整大小?
有没有在IPython笔记本中运行所有单元格的快捷方式?
如果没有,这是否有特定原因?
我有一个类似于以下的目录结构
meta_project
project1
__init__.py
lib
module.py
__init__.py
notebook_folder
notebook.jpynb
Run Code Online (Sandbox Code Playgroud)
当notebook.jpynb我尝试使用相对导入来访问函数function()时module.py使用:
from ..project1.lib.module import function
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
SystemError Traceback (most recent call last)
<ipython-input-7-6393744d93ab> in <module>()
----> 1 from ..project1.lib.module import function
SystemError: Parent module '' not loaded, cannot perform relative import
Run Code Online (Sandbox Code Playgroud)
有没有办法让这个使用相对导入工作?
请注意,笔记本服务器在meta_project目录级别实例化,因此它应该可以访问这些文件中的信息.
另请注意,至少与最初的预期project1并未被视为模块,因此没有__init__.py文件,它只是作为文件系统目录.如果问题的解决方案需要将其视为一个模块并包含一个__init__.py文件(即使是空白文件),那么这样做是不错的,但这样做不足以解决问题.
我在机器和相对导入之间共享这个目录允许我在任何地方使用相同的代码,并且我经常使用笔记本进行快速原型设计,因此涉及黑客攻击绝对路径的建议不太可能有用.
编辑:这与Python 3中的相对导入不同,Python 3通常讨论Python 3中的相对导入,特别是从包目录中运行脚本.这与在jupyter笔记本中工作有关,该笔记本试图在另一个具有不同的一般和特定方面的目录中的本地模块中调用函数.
jupyter-notebook ×10
python ×7
ipython ×3
importerror ×1
jupyter ×1
logging ×1
matplotlib ×1
pandas ×1
pdb ×1
python-2.7 ×1
r ×1
tqdm ×1