You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Emacs配置elpy时报错Symbol's function definition is void: use-package怎么办

报错原因

该报错核心是当前Emacs运行环境未加载use-package功能模块,分两种常见场景:

  • 若使用Emacs 28及更早版本:use-package不属于Emacs内置功能,未提前完成该包的安装与加载
  • 若使用Emacs 29及更高版本:use-package虽已内置,但配置中未主动调用加载指令启用该功能
修复方案

通用方案(适配所有Emacs版本)

在你现有配置的最开头添加如下代码,自动完成包管理器初始化、use-package的安装与加载:

;; 初始化官方包管理器
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
(package-initialize)

;; 自动安装use-package(若未安装)
(unless (package-installed-p 'use-package)
  (package-refresh-contents)
  (package-install 'use-package))
(require 'use-package)
;; 可选配置:开启全局自动安装缺失包,后续use-package声明无需重复写:ensure t
(setq use-package-always-ensure t)

添加完成后,你原有elpy配置可直接保留使用。如果开启了上述可选的全局配置,elpy配置可简化为:

(use-package elpy
  :init
  (elpy-enable))

精简方案(仅适配Emacs 29及更高版本)

若确认使用Emacs 29及以上版本,无需兼容旧版本,只需在现有配置最开头添加一行加载指令即可:

(require 'use-package)

修改完成后重启Emacs,或执行M-x eval-buffer加载当前配置文件即可验证修复效果。


内容的提问来源于stack exchange,提问作者heavyblack1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 22:36:05