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

Arch Linux下Emacs lsp-mode提示“command pyls is not present on the path”是什么原因

问题原因

你通过pip install 'python-language-server[all]' --user命令安装的pyls可执行文件默认存放在~/.local/bin目录下,终端运行时会自动加载shell配置(.bashrc、.zshrc等)将该目录加入PATH环境变量,所以终端可以正常调用pyls。而通过桌面图标/菜单启动的GUI版Emacs不会加载shell的PATH配置,所以找不到该命令。

解决方法(三种任选其一即可)

  • 方案一:安装exec-path-from-shell包自动同步shell环境变量
    在你的Emacs配置文件中加入如下配置:

    (use-package exec-path-from-shell
      :ensure t
      :when (memq window-system '(mac ns x))
      :config
      (exec-path-from-shell-initialize))
    

    重启Emacs后会自动同步shell的PATH配置,即可正常识别pyls命令。

  • 方案二:手动添加路径到Emacs环境变量
    不需要额外安装包,直接在配置中加入:

    (setq exec-path (append exec-path '("~/.local/bin")))
    (setenv "PATH" (concat (getenv "PATH") ":" (expand-file-name "~/.local/bin")))
    
  • 方案三:直接指定pyls的绝对路径
    先在终端执行which pyls获取pyls的完整路径,比如输出为/home/liu/.local/bin/pyls,然后在配置中加入:

    (setq lsp-pyls-server-command "/home/liu/.local/bin/pyls")
    

    注意将路径替换为你自己设备上which pyls返回的实际路径。

配置完成后重启Emacs,再打开Python文件即可正常加载lsp-mode的代码补全功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:24:05