Jupyter 和 Common Lisp

2024-03-19

我正在尝试安装cl-jupyter https://github.com/fredokun/cl-jupyter(common-lisp 内核Jupyter http://jupyter.org/),我无法让它工作:当我打开一个新的 lisp 笔记本(或更改现有笔记本的内核)时,它在显示以下消息后崩溃:

[I 18:26:50.855 NotebookApp] Kernel started: ccba815a-9065-4fad-9d95-06f6291136d2
To load "cl-jupyter":
  Load 1 ASDF system:
    cl-jupyter
; Loading "cl-jupyter"
...............

cl-jupyter: an enhanced interactive Common Lisp REPL
(Version 0.7 - Jupyter protocol v.5.0)
--> (C) 2014-2015 Frederic Peschanski (cf. LICENSE)

kernel configuration = ((hb_port . 58864) (shell_port . 37462)
                        (transport . tcp) (iopub_port . 43232)
                        (signature_scheme . hmac-sha256)     (control_port . 52184)
                        (stdin_port . 45879)
                        (key . 2ae7d65f-65f9-40d8-bfd4-21760eaec0ca)
                        (ip . 127.0.0.1))
[Hearbeat] starting...
[Heartbeat] thread started
[Heartbeat] thread started
[Kernel] Entering mainloop ...
[Shell] loop started
Argh! corrupted error depth, halting
fatal error encountered in SBCL pid 24605(tid 140737353922304):
%PRIMITIVE HALT called; the party is over.

一些细节:

  • Jupyter与 python 配合良好(2x 和 3x)。
  • sbcl似乎也工作得很好(我刚刚开始使用 common-lisp,所以我可能会遗漏一些东西 - 但我可以运行代码,并使用 asdf 和 Quicklisp)。
  • 我通过运行“python3 ./install-cl-jupyter.py".
  • My .sbclrc文件现在只包含“(load "~/quicklisp/setup.lisp")".

系统信息:

  • 操作系统:Linux 4.1.13-1-MANJARO x86_64 GNU/Linux
  • Python 3.5.0
  • SBCL 1.3.0
  • Jupyter版本4.0.6

我尝试过的一些事情:

文件~/.ipython/kernels/lisp/kernel.json包含:

{"argv": ["sbcl", "--non-interactive", "--load", "/home/myusername/lisp/systems/cl-jupyter/cl-jupyter.lisp", "/homemyusername/lisp/systems/cl-jupyter/src", "/home/myusername/lisp/systems/cl-jupyter", "{connection_file}"], "display_name": "SBCL Lisp", "language": "lisp"}

所有路径都是正确的。当我手动运行相同的代码时:

sbcl --non-interactive --load "/home/myusername/lisp/systems/cl-jupyter/cl-jupyter.lisp" "/homemyusername/lisp/systems/cl-jupyter/src" "/home/myusername/lisp/systems/cl-jupyter" kernel-07e04903-c562-4c67-bcc1-b68f4047d8d2.json

(其中“kernel-07e04903-c562-4c67-bcc1-b68f4047d8d2.json”是我保存的lisp内核自动生成的文件),它“看起来不错”(例如,它运行,并且等待没有错误)。

我尝试进行一些快速调试打印,我最好的猜测是它崩溃了src/shell.lisp,在行中

 (vbinds (identities sig msg buffers)  (message-recv (shell-socket shell))

但同样,我可能是错的。因为它看起来有点与通信有关,所以我确保 Zeromq 已更新。

我不知道除了学习更多 lisp 之外接下来会发生什么,然后回来正确调试代码 - 但我希望使用 Jupyter 来学习它:)

我很感激任何建议, 谢谢。


此问题是由消息结构大小的变化引起的,zmq_msg_t,在 0MQ 版本 4.1.x 中,从版本 4.0.x 中的 32 字节大小变为 64 字节。

使用的0MQ接口库cl-jupyter is pzmq,并且该库据称支持 0MQ 最高版本 4.0。在撰写本文时,pzmq使用 32 字节的 0MQ 消息大小。如果安装 0MQ 版本 4.1.x,这会导致内部错误。

这里有两种解决方案:

  1. 将 0MQ 安装降级到版本 4.0.x
  2. Fix the pzmq库通过更新定义msg% in c-api.lisp从 32 到 64 字节。


更新 - 2016 年 5 月 9 日

The pzmq库已更新以支持 0MQ 版本 4.1.x(保留与旧版本的兼容性)。新版本的pzmq计划作为 2016 年 5 月 Quicklisp 版本的一部分发布。


更新 - 2016 年 6 月 1 日

2016 年 5 月的 Quicklisp 版本包括对pzmq解决这个问题的库。 0MQ 降级或修改pzmq不再需要图书馆。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jupyter 和 Common Lisp 的相关文章

  • 使用局部特殊变量

    为了方便原型设计 我依赖于许多全局变量 这些变量在整个代码中大量使用 但现在我想让其中一些成为本地的 但动态的 在本地声明它们是否有任何重大缺点 例如 效率等 special而不是全球 特殊变量不受欢迎的功能包括 缺乏参考透明度 这使得对代
  • Emacs 24.x 上的 IPython 支持

    我对 IPython 与 Emacs 的集成感到困惑 从 Emacs 24 开始 Emacs 附带了自己的python el 该文件是否支持 IPython 还是仅支持 Python 另外 维基百科 http emacswiki org e
  • 将 jupyter R 内核与 Visual Studio 代码结合使用

    对于 python jupyter 笔记本 我目前正在使用 VSCode python 扩展 但是我找不到任何使用替代内核的方法 我对 jupyter R 内核特别感兴趣 有没有办法在 VSCode 中使用 R 内核来处理 jupyter
  • IPython 在第一个换行符之后结束缩进块的输入

    在 IPython 中 我无法输入多行缩进块 它结束输入 从 提示下一步In x 当我按下回车键时 例如 我正在尝试编写牛顿方法的示例实现来进行演示 我只能在它返回之前写第一行 所以我只能在 IPython 中输入以下内容 In 3 def
  • 使用 slime 时如何跳转到 emacs 中的函数定义?

    我已经使用安装了史莱姆https github com thephoeron slime pack https github com thephoeron slime pack并想进一步探索 common lisp 如何访问 emacs 中
  • ZMQ:XPUB 套接字上没有多个订阅者的订阅消息(最后值缓存模式)

    我实现了 ZMQ 的最后值缓存 LVC 示例 http zguide zeromq org php chapter5 Last Value Caching http zguide zeromq org php chapter5 Last V
  • 在 ipython 中使用 igraph 绘制顶点标签时出现问题

    我通常在 IPython 笔记本中工作 我使用以下命令在 Windows 上打开它 ipython qtconsole matplotlib inline 我目前正在使用 IPython QtConsole 3 0 0 Python 2 7
  • 如何通过双击在浏览器中打开 ipynb 文件

    以前 我安装了 Canopy 当时 我只需双击 ipynb 文件并在浏览器中打开它们即可 但是 后来我需要Anaconda 一旦我安装了它 这个功能就没有了 现在我只希望能够简单地双击 ipynb 文件 然后该文件就会在 Firefox 中
  • 在 Colab 中删除后恢复单元格

    我经常在 Colab 中意外删除代码 并且由于某种原因 当我尝试撤消代码删除时 它不起作用 所以基本上 当我这样做时 我想以某种方式恢复我的细胞 有什么办法可以做到这一点 比如看看 Colab 正在运行的代码 因为我的细胞可能还在那里 另一
  • 关于onlisp中的广义变量

    我不确定这里发生了什么 文中的宏观示例 基本上不知道如何使用get setf 方法 一个内置宏 也许是函数 具体来说 如果某些返回值是这样的情况呢 get setf 方法为零 例如 get setf 方法 x NIL NIL NEW 306
  • Common Lisp 反引号/反引号:如何使用?

    我在使用 Lisp 的反引号读取宏时遇到问题 每当我尝试编写一个似乎需要使用嵌入式反引号的宏时 例如 w x y 来自保罗 格雷厄姆的ANSI 通用 Lisp 第 399 页 我不知道如何以编译的方式编写代码 通常 我的代码会收到一整串错误
  • jupyter笔记本在不同的环境中运行内核

    我已经让自己陷入了某种可怕的虚拟环境混乱之中 帮助 我管理环境conda 直到最近 我只有一个 python2 jupyter 笔记本内核 但我决定把自己拖到 21 世纪 安装了一个 python3 内核 我忘了我是怎么做到的 我的主要 a
  • 打印一个 Jupyter 单元中定义的所有变量

    有没有一种更简单的方法来以漂亮的方式显示单个单元格中定义的所有变量的名称和值 我现在做的方式是这样的 但是当有30个或更多变量时我浪费了很多时间 您可以使用whos http ipython readthedocs io en stable
  • 如何在不启动 Jupyter Notebook 服务器的情况下使用 .ipynb 文件?

    我开始更多地使用 Jupyter 笔记本 并且真的开始喜欢它 但是 我发现很难在我的特定设置中使用它 我有一个工作站来运行所有笔记本电脑 但一天中的大部分时间我都在使用空间有限且没有电源插座的笔记本电脑 我希望能够编辑 但不能运行 这些笔记
  • Keras Model.fit 详细格式

    我在 Jupyter Notebook 中运行 Keras model fit 如果 verbose 设置为 1 输出会非常混乱 Train on 6400 samples validate on 800 samples Epoch 1 2
  • IPython自动开启matplotlib交互模式

    我遇到了 IPython 的一些新奇怪行为 我只需重新安装我的 miniconda 所以我现在有了新的 IPython 和 Matplotlib 版本 事实证明 IPython 会自动将 matplotlib 切换到交互模式 这具有令人讨厌
  • 如何使用 Docker 镜像 jupyter/pyspark-notebook 在 jupyter-notebook 上禁用密码或令牌登录

    我正在运行 dockerdocker run it p 8888 8888 jupyter pyspark notebook usr local bin start notebook sh running hooks in usr loca
  • defvar、defparameter、setf 和 setq 之间有什么区别

    我找到了一个类似问题 https stackoverflow com questions 3855862 setq and defvar in lisp 但我不太明白这个解释 所以我尝试使用以下示例运行 clisp 1 gt defvar
  • Tensorflow GPU 设置:PyCharm 上的 CUDA 错误

    我在 Python3 MacOSX El Capitan 上安装了 TF 0 8 当为 TF 运行简单的测试代码时 我收到以下消息 ImportError dlopen Library Frameworks Python framework
  • 如何恢复内核崩溃后清空的笔记本?

    在 ipython 笔记本中工作时 最终我不得不按 Ctrl C 因为内核似乎已停止 控制台给了我一条消息 如下所示 NotebookApp Kernel shutdown 5faa86bf f6 NotebookApp Kernel sh

随机推荐

  • 代理 Firebase 函数的跨域状态 cookie 问题

    我使用开发了一个oAuth登录这个例子 https github com firebase functions samples tree master linkedin auth 遇到的第一个问题是如果浏览器中禁用第三方 cookie 现在
  • 如何将 Xml 属性绑定到 Treeview 节点,同时将 XDocument 数据绑定到 WPF Treeview

    我有一个 XML 需要将数据绑定到WPF 树视图 这里 XML 可以有不同的结构 TreeView 应该是数据绑定通用的 足以加载层次结构的任何排列 然而X属性在节点上 称为Title 应该数据绑定到 TreeViewItem 的标题文本
  • 在双屏环境上运行应用程序[重复]

    这个问题在这里已经有答案了 可能的重复 如何在 C 中找到应用程序正在哪个屏幕上运行 https stackoverflow com questions 549751 how do i find what screen the applic
  • 模拟用户脚本中的 Enter 键 tampermonkey [重复]

    这个问题在这里已经有答案了 我正在尝试编写一个用户脚本 在类名 chat input 的输入标记中键入一些内容并按 Enter 键 到目前为止 用户脚本仅键入 Hello 在聊天输入中 但不模拟回车键 知道为什么吗 var msg Hell
  • 将文本和容器置于圆圈内

    我这里有一个 Bootply http www bootply com XLGE6Vpjov http www bootply com XLGE6Vpjov 我需要将 3 个圆圈置于容器中 然后将其中的文本水平和垂直居中 如何使文本垂直居中
  • 获取模型或控制器中消化的 asset_path

    我有一个Article模型 它有一个字段svg path I use fabricjs绘制可以包含多篇文章且可修改的画布 我目前所做的是生成一个json包含文章的所有必需字段 包括svg path 当我尝试使用asset path帮手 ht
  • 如何使用 python boto3 将 s3 对象从一个存储桶复制到另一个存储桶

    我想将文件从一个 s3 存储桶复制到另一个 我收到以下错误 s3 meta client copy 源 目标 类型错误 copy 至少需要 4 个参数 给定 3 个 我无法通过阅读文档找到解决方案 这是我的代码 usr bin env py
  • madvise() 中 MADV_USERFAULT 标志的状态是什么?

    已经有一些讨论在 madvise 中使用新标志来告诉内核不要处理某些内存范围内的页面错误 lwn net 1 https lwn net Articles 615086 lwn net 2 https lwn net Articles 54
  • Google Drive SDK iOS 示例

    我按照Google Drive sdk的iOS示例教程中的步骤进行操作 https developers google com drive ios quickstart https developers google com drive i
  • paxos 与 raft 进行领导者选举

    读完paxos和raft paper后 我有以下困惑 paxos论文仅描述了单个日志条目的共识 相当于raft算法中的领导者选举部分 在raft的leader选举中 paxos的方式相对于简单的随机超时方式有什么优势呢 一个常见的误解是原始
  • 在 Eclipse 控制台中对日志进行着色

    有没有办法在 Eclipse 控制台中对部分日志进行着色 我知道我可以发送到错误和标准流并对它们进行不同的着色 但我更喜欢在 ANSI 转义代码 或任何其他 HTML 行中查找一些内容 我可以在字符串中嵌入颜色以使其在字符串中着色日志 它肯
  • 强制表单文本为小写

    我如何强制 用户名 文本中的文本input无论用户类型如何都小写 div class register div
  • 当区域控制器加载时,为什么我的 BaseController.User 值 == null ? [复制]

    这个问题在这里已经有答案了 我正在编写一个 Asp Net 核心应用程序 并且在获得导航访问权限之前让用户通过 Google 进行身份验证 当用户导航到我的 WorldBuilder 区域并点击 WorldController 时 Base
  • 两个具有相同名称和不同私钥的 iOS 分发证书的问题[已关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我们有两个 iOS 发行版证书 我在签名时遇到一些问题 因为两个分发证书具有相同的名称 如果我添加两个证书并尝试使用其中一个证书进行签名
  • sqlite 选择日期条件

    我有一个带有出生日期的 sqlite 表 我想执行一个查询来选择年龄超过 30 岁的记录 我已经尝试过以下方法 但它不起作用 select from mytable where dob gt 1 Jan 1980 select from m
  • Django Rest Framework 在序列化之前更新数据

    我希望任何用户都可以使用我的 RESTful API 创建自己的产品 为此 我创建了一个继承ListCreateAPIView的视图 问题是用户应该只创建他 她拥有的产品 因此当创建 Product 模型的实例时 我希望字段 Owner 对
  • 如何为iMessage Sticker App网格贴纸提供不同尺寸

    我创建了一个 iOS iMessage 贴纸应用程序 根据苹果文档 我应该能够以三种不同尺寸之一显示贴纸 但是 无论我将贴纸图像设置为什么尺寸 300px x 300px 408px x 408px 618px x 618px 它们仅显示为
  • Golang 中的函数声明

    在 Golang 中声明函数似乎有两种不同的方式 如下所示 package main import fmt var someFunc func arg string fmt Println arg func main someFunc He
  • 如何在 ruby​​ 中进行 base58 编码?

    我正在尝试编码原型股 http protoshares net 原始格式的钱包地址 如中所述Bitcoin https en bitcoin it wiki Technical background of Bitcoin addresses
  • Jupyter 和 Common Lisp

    我正在尝试安装cl jupyter https github com fredokun cl jupyter common lisp 内核Jupyter http jupyter org 我无法让它工作 当我打开一个新的 lisp 笔记本