Emacs: `jedi: install-server` завершается неудачей, даже если` virtualenv` установлен - PullRequest
0 голосов
/ 29 февраля 2020

Я пытаюсь установить автозавершение JEDI для Emacs в соответствии с этим руководством .

Когда я ввожу M-x jedi:install-server, я получаю ошибку Program named "virtualenv" does not exist. Я последовал совету в этом ответе и установил его, используя pip install virtualenv. Теперь, когда я ввожу virtualenv в терминале, я получаю этот вывод:

usage: virtualenv [--version] [--with-traceback] [-v | -q] [--app-data APP_DATA] [--clear-app-data] [--discovery {builtin}] [-p py] [--creator {builtin,cpython3-posix,venv}] [--seeder {app-data,pip}] [--no-seed]
                  [--activators comma_sep_list] [--clear] [--system-site-packages] [--symlinks | --copies] [--download | --no-download] [--extra-search-dir d [d ...]] [--pip version] [--setuptools version] [--wheel version] [--no-pip]
                  [--no-setuptools] [--no-wheel] [--symlink-app-data] [--prompt prompt] [-h]
                  dest
virtualenv: error: the following arguments are required: dest

Затем я перезапустил, ввел M-x jedi:install-server, но я все еще получаю ту же ошибку.

Я с использованием GNU Emacs 26.3 (сборка 1, x86_64-p c - linux -gnu, GTK + версия 3.22.30) 2019-12-03 на Linux Mint 19.3 Tricia.

Как я могу исправить эту ошибку и начать использовать автозаполнение JEDI?

Обновление 1: Кроме того, всякий раз, когда я открываю файл Python, я получаю это предупреждение

*** EPC Server Config ***
Server arguments: ("/usr/bin/python" "/home/XXXXXXX/.emacs.d/elpa/jedi-core-20191011.1750/jediepcserver.py")
Actual command: /usr/bin/python
VIRTUAL_ENV envvar: nil

*** jedi-mode is disabled in #<buffer createPageStructure.py> ***
Fix the problem and re-enable it.

*** You may need to run "M-x jedi:install-server". ***
This could solve the problem especially if you haven't run the command yet
since Jedi.el installation or update and if the server complains about
Python module imports.

1 Ответ

1 голос
/ 06 апреля 2020

Я больше не использую jedi и переключился на lsp-mode, но ниже моя старая рабочая конфигурация, использующая company-jedi для завершения Python. Когда python-mode загружается, он вызовет jedi:install-server-block для установки поддержки джедаев, если она не была установлена. Возможно, вы захотите проверить буфер *Messages*, чтобы увидеть, печатает ли он Installing jedi server.... Надеюсь, это поможет.

(use-package company-jedi
  :if (executable-find "virtualenv")
  :ensure t
  :bind
  (:map python-mode-map
        ("M-." . jedi:goto-definition)
        ("M-," . jedi:goto-definition-pop-marker))
  :config
  (unless (file-exists-p
           (expand-file-name
            ".python-environments" user-emacs-directory))
    (message "Installing jedi server...")
    (jedi:install-server-block)
    (message "Installing jedi server...done"))
  :hook
  (python-mode
   . (lambda ()
       (setq-local company-backends
                   (append (list 'company-jedi) company-backends)))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...