小编Tra*_*alk的帖子

在quicklisp项目上使用buildapp时如何修复asdf错误

我最近一直在做我的第一个quicklisp项目,我想分享一下。我已将放在github上,但并非每个人都安装了emacs + slime + quicklisp,因此我想制作一个可执行文件,可以将其放入代码中。

为此,我正在使用buildapp并遵循 stackoverflow答案中列出的步骤。

$ sbcl --no-userinit --no-sysinit --non-interactive \
       --load ~/quicklisp/setup.lisp \
       --eval '(ql:quickload "ltk-colorpicker")' \
       --eval '(ql:write-asdf-manifest-file "quicklisp-manifest.txt")'

$ buildapp --output out \
           --manifest-file quicklisp-manifest.txt \
           --load-system ltk-colorpicker \
           --entry colorpicker
Run Code Online (Sandbox Code Playgroud)

运行这些命令后,出现以下错误:

Fatal INPUT-ERROR-IN-LOAD:
  READ error during LOAD:

    The symbol "*SYSTEM-DEFINITION-SEARCH-FUNCTIONS*" is not external in the ASDF/FIND-SYSTEM package.

      Line: 16, Column: 90, File-Position: 15267

      Stream: #<SB-INT:FORM-TRACKING-STREAM for "file /home/nathan/quicklisp/local-projects/ltk-colorpicker/dumper-2SKVI5f7.lisp" {1001B70F83}>
Run Code Online (Sandbox Code Playgroud)

这里的主要问题是我什至不知道如何开始修复它。我已经看到过这个 gibhub问题,但这与Homebrew的问题有关,甚至从未提及buildapp。一切都很混乱。我希望我能得到一些帮助。

预先感谢您的任何答案。

common-lisp asdf quicklisp

3
推荐指数
1
解决办法
55
查看次数

将 pex 与诗歌一起使用 pyproject.toml

我正在尝试弄清楚如何使用 pex 对 python 项目进行自动化(ish)部署。我目前有以下流程:

$ poetry run pip freeze > requirements.txt 
manually remove this-project line from requirements.txt
$ poetry run pex -r requirements.txt -o service.pex -e api:start --sources-directory=.
$ ./service.pex
Run Code Online (Sandbox Code Playgroud)

第二步的原因是,this-project如果我将该行留在其中,pex 将尝试在线查找。我理解这一点,但pip freeze确实将该行插入到requirements.txt. 我想知道的是:pex可以使用pyproject.toml还是poetry.lock直接使用?当前的解决方案是一种烦人的解决方案。

我看过2019 年教程,但它不起作用,因为当前版本的 pex 无法识别--project为选项。

任何其他建议将不胜感激。

deployment python-pex python-poetry

3
推荐指数
1
解决办法
1378
查看次数

为什么(2,3)映射到一个点的y值而不是将2和3分别映射到该点的x和y值?Common Lisp

我一直致力于普通lisp的jarvis march实现.jarvis march算法采用一堆点并返回该点云的凸包.我将每个点表示为这样的结构:

(defstruct point x y)
Run Code Online (Sandbox Code Playgroud)

然后我继续定义一个测试集,但是,由于初始化结构的符号相当长(make-point :x 0 :y 1),我决定创建一个自动为我做的函数:

(defun make-points (list)
  (map 
    'list
    (lambda (e) (make-point :x (first e) :y (second e)))
    list))
Run Code Online (Sandbox Code Playgroud)

可悲的是,它不起作用.

(print (first (make-points '('(2 3)))))    ;prints out '#S(POINT :X QUOTE :Y (2 3))' => wrong
(print (make-point :x 2 :y 3))             ;prints out '#S(POINT :X 2 :Y 3)' => correct
Run Code Online (Sandbox Code Playgroud)

它将完整列表(2 3)绑定到所有事物的y值,并且它不为x值赋值.为什么会这样做以及如何解决它.

在此先感谢,我对lisp相当新鲜(正如你可能从这个问题中猜到的那样),如果有人可以帮助我,我将非常感激.如果有人知道任何捷径或对我的工作方法有任何好的论据也会很好,虽然在评论中告诉我他们可能会更好,因为他们不会直接回答这个问题.

mapping common-lisp

0
推荐指数
1
解决办法
51
查看次数