Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Completion attempt gets wrong-type-argument (epc:manager nil) #37

Open
BigBaaadBob opened this issue Oct 26, 2020 · 1 comment
Open

Comments

@BigBaaadBob
Copy link

GNU Emacs 26.3 (build 1, x86_64-w64-mingw32)

Using miniconda3 virtual environments

Company and company-jedi installed from Melpa:

  company            20201014.2251 installed 
  company-jedi       20200324.25   installed
  pyvenv             20191202.1039 installed 

Prereqs installed:

$ conda list | grep 'epc\|jedi'
epc                       0.0.5                    pypi_0    pypi
jedi                      0.17.2                   pypi_0    pypi

Config:

;; company
(eval-after-load "company"
  '(add-to-list 'company-backends 'company-jedi))
(add-hook 'after-init-hook 'global-company-mode)
(setq jedi:server-command '("~/.emacs.d/elpa/jedi-core-20191011.1750/jediepcserver.py"))

jediepcserver.py works at that path:

$ ~/.emacs.d/elpa/jedi-core-20191011.1750/jediepcserver.py --help
usage: jediepcserver.py [-h] [--address ADDRESS] [--port PORT]
                        [--port-file PORT_FILE] [--sys-path SYS_PATH]
                        [--sys-path-append SYS_PATH_APPEND]
                        [--virtual-env VIRTUAL_ENV] [--log LOG]
                        [--log-level {CRITICAL,ERROR,WARN,INFO,DEBUG}]
                        [--log-rotate-max-size LOG_ROTATE_MAX_SIZE]
                        [--log-rotate-max-count LOG_ROTATE_MAX_COUNT]
                        [--log-traceback] [--pdb] [--ipdb]

Jedi EPC server.

Completion fails with:

*** jedi-mode is disabled in #<buffer hello.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.

I enabled debug on error and get this traceback:

Debugger entered--Lisp error: (wrong-type-argument epc:manager nil)
  signal(wrong-type-argument (epc:manager nil))
  jedi:epc--start-epc("~/.emacs.d/elpa/jedi-core-20191011.1750/jediepcserver.py" nil)
  jedi:server-pool--start(("~/.emacs.d/elpa/jedi-core-20191011.1750/jediepcserver.py"))
  jedi:start-server()
  jedi:get-epc()
  jedi:call-deferred(complete)
  company-jedi-candidates(#f(compiled-function (candidates) #<bytecode 0x2a33485>))
  company--fetch-candidates(#("impo" 0 4 (fontified t)))
  company-calculate-candidates(#("impo" 0 4 (fontified t)) nil)
  company--begin-new()
  company--perform()
  company-auto-begin()
  company-idle-begin(#<buffer hello.py> #<window 3 on hello.py> 75 5)
  apply(company-idle-begin (#<buffer hello.py> #<window 3 on hello.py> 75 5))
  timer-event-handler([t 24471 6093 761307 nil company-idle-begin (#<buffer hello.py> #<window 3 on hello.py> 75 5) nil 0])

This happens nomatter what I put in jedi:server-args.

Company completion seems to be working fine for elisp. I haven't tried any other backends. I appreciate this isn't a standard config, but it is difficult to have multiple venv setups in a Conda environment.

@BigBaaadBob
Copy link
Author

Here is my output from jedi:show-setup-info that shows things aren't happy.

;; Emacs Lisp version:
(:emacs-version "26.3" :jedi-version "0.2.8" :python-environment-version "0.0.2alpha0")
;; Python version:
nil
;; EPC error:
(:get-epc-error
 (wrong-type-argument epc:manager nil))
;; Command line:
(:virtualenv nil :virtualenv-version nil)
;; Customization:
((jedi:complete-on-dot)
 (jedi:doc-display-buffer . display-buffer)
 (jedi:doc-hook view-mode)
 (jedi:doc-mode . rst-mode)
 (jedi:environment-root)
 (jedi:environment-virtualenv)
 (jedi:get-in-function-call-delay . 1000)
 (jedi:get-in-function-call-timeout . 3000)
 (jedi:goto-definition-config
  (nil nil nil)
  (t nil nil)
  (nil definition nil)
  (t definition nil)
  (nil nil t)
  (t nil t)
  (nil definition t)
  (t definition t))
 (jedi:goto-definition-hook)
 (jedi:goto-definition-marker-ring-length . 16)
 (jedi:imenu-create-index-function . jedi:create-nested-imenu-index)
 (jedi:import-python-el-settings . t)
 (jedi:install-imenu)
 (jedi:install-python-jedi-dev-command "pip" "install" "--upgrade" "git+https://github.com/davidhalter/jedi.git@master#egg=jedi")
 (jedi:key-complete .
                    [C-tab])
 (jedi:key-goto-definition .
                           [67108910])
 (jedi:key-goto-definition-pop-marker .
                                      [67108908])
 (jedi:key-related-names . "�r")
 (jedi:key-show-doc . "�d")
 (jedi:server-args)
 (jedi:server-command "~/.emacs.d/elpa/jedi-core-20191011.1750/jediepcserver.py")
 (jedi:setup-keys)
 (jedi:tooltip-method pos-tip popup)
 (jedi:use-shortcuts)
 (python-environment-default-root-name . "default")
 (python-environment-directory . "~/.emacs.d/.python-environments")
 (python-environment-virtualenv "virtualenv" "--system-site-packages" "--quiet"))

I've tried to do things like this with no significant improvement:

;;(setq python-environment-virtualenv '("python" "-m" "venv"))
;;(setq python-environment-directory "~/miniconda3/envs")

The actual warning I get is:

Error (jedi): 
================================
Failed to start Jedi EPC server.
================================

*** EPC Error ***
Searching for program

*** EPC Server Output (last 10 lines) ***


*** EPC Server Config ***
Server arguments: ("~/.emacs.d/elpa/jedi-core-20191011.1750/jediepcserver.py")
Actual command: nil ("~/.emacs.d/elpa/jedi-core-20191011.1750/jediepcserver.py" not found in exec-path)
VIRTUAL_ENV envvar: nil

*** jedi-mode is disabled in #<buffer *scratch*> ***
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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

1 participant