I am using Emacs 30.1 on MacOS and have configured Elpy. The auto complete popup is working properly in python file (for e.g. typing 'a'.l shows me below popup ).
However, when I type 'a'.l in the IPython shell, I don't get any popup with suggestions.
If I press TAB, I am getting the suggestions in the Completions buffer as shown below (how to get popup like python code above?),
Here is my elpy-config,
Elpy Configuration Emacs.............: 30.1 Elpy..............: 1.35.0 Virtualenv........: quest (/Users/amit_tendulkar/venv/quest/) Interactive Python: ipython 9.4.0 (/Users/amit_tendulkar/venv/quest/bin/ipython) RPC virtualenv....: rpc-venv (/Users/amit_tendulkar/.emacs.d/elpy/rpc-venv) Python...........: python3 3.9.6 (/Users/amit_tendulkar/.emacs.d/elpy/rpc-venv/bin/python3) Jedi.............: 0.19.2 Autopep8.........: 2.3.2 Yapf.............: 0.43.0 Black............: 25.11.0 Syntax checker....: flake8 (/Users/amit_tendulkar/venv/quest/bin/flake8) Warnings Options `Raised' text indicates buttons; type RET or click mouse-1 on a button to invoke its action. Invoke [+] to expand a group, and [-] to collapse an expanded group. Invoke the [Group], [Face], and [Option] buttons below to edit that item in another window. [+]-- Group Elpy [+]-- Group Python [+]-- Group Virtual Environments (Pyvenv) [+]-- Group Completion (Company) [+]-- Group Call Signatures (ElDoc) [+]-- Group Inline Errors (Flymake) [+]-- Group Code folding (hideshow) [+]-- Group Snippets (YASnippet) [+]-- Group Directory Grep (rgrep) [+]-- Group Search as You Type (ido) [+]-- Group Django extension [+]-- Group Autodoc extension I have initialized Elpy as follows,
(straight-use-package 'pyenv) (straight-use-package 'auto-complete) (straight-use-package 'jedi) (straight-use-package 'elpy) (straight-use-package 'projectile) ;; for elpy -- M-x jedi:install-server (straight-use-package 'epc) (straight-use-package 'deferred) (require 'epc) (require 'pyvenv) ;; auto-complete -- needed for jedi (require 'auto-complete) ;; Jedi.el for Python auto-completion (require 'jedi) ;; elpy - Python IDE (load "elpy") (load "elpy-rpc") (load "elpy-shell") (load "elpy-profile") (load "elpy-refactor") (load "elpy-django") ;; projectile - needed for elpy (require 'projectile) (pyvenv-activate "~/venv/quest") ;; Support for ipython (when (executable-find "ipython") (setq python-shell-interpreter "ipython" python-shell-interpreter-args "-i --simple-prompt" )) (elpy-enable) (setq elpy-rpc-backend "jedi") Edit on 12 Nov 2025: Upon suggestion from @Ian I switched to Eglot (as Elpy is outdated). But at the high level the issue still remains. Please let me know if you find any configuration missing below.
I used to company-mode for completion.
Here is the updated configuration,
(straight-use-package 'pyvenv) (straight-use-package 'company) (require 'pyvenv) (require 'company) (add-hook 'after-init-hook 'global-company-mode) (pyvenv-activate "~/venv/quest") ;; Support for ipython (when (executable-find "ipython") (setq python-shell-interpreter "ipython" python-shell-interpreter-args "-i --simple-prompt" )) Now I am getting popup menu with suggestions in Python file after the following steps,
- Run
M-x eglotwhile in the Python buffer (required only first time). - It asks me for lsp server program name. I simply press enter to use pylsp.
- Now typing
os.shows me theosmodule's functions and variables
I am not getting any suggestions in IPython with the below steps,
- Run
M-x run-python, I get switched to IPython shell. - Run
M-x eglotwhile in ipython shell (needed only for the first time) - It asks me for the mode name. I enter
inferior-python-mode - Next, it asks me for lsp server program name. I enter
pylsp RET. - However, after typing
import osfollowed byos., I got the popup menu with the current list of files completion containingo,sand.characters but not the functions from theosmodule.
Any tips?



Eglot, built-in Emacs 29/30, just start it withM-x eglotand see how it works. Of coarse, you can add some configurations. 2) Python 3.9 is near EOL, try another version, 3.13/3.14; starting wit 3.11 Python was improved and added modifications.