SBCL加载hello.lisp时提示UIOP包不存在,求解决方法
解决SBCL中UIOP包不存在的问题
方法一:显式加载UIOP包
UIOP是ASDF工具链的组成部分,SBCL新版本默认集成,但部分场景下需要显式加载:
- 在SBCL交互环境中先执行:
(require "uiop"),再运行(load "hello.lisp") - 或者直接修改
hello.lisp脚本,在开头添加加载语句:
(require "uiop") (defun hello () "say hello to USER" (format t "hello ~a" (uiop:getenv "USER"))) (hello)
方法二:用SBCL原生函数替代
如果不想依赖UIOP,可直接使用SBCL自带的环境变量获取函数,修改脚本如下:
(defun hello () "say hello to USER" (format t "hello ~a" (sb-posix:getenv "USER"))) (hello)
注:sb-posix是SBCL默认自带的包,无需额外安装。
方法三:升级SBCL版本
若你的SBCL版本过旧(低于1.4.0),可能未默认集成UIOP,安装最新版SBCL即可解决该问题。
内容的提问来源于stack exchange,提问作者Oliver Cox
相关产品推荐
相关产品推荐

