我在各种任务中都使用Emacs,现在开始学习Python编程,想继续使用Emacs来编写Python代码。
我已经为Python3设置了一个虚拟环境,并且它也按预期工作。我还安装了Emacs 24.5和最新版本的Emacs Prelude。
当我编辑Python源文件时,所有预期的功能都可以正常使用--代码自动完成、对象检查等等--但是这只针对我的系统范围内的Python安装,而不是我为项目设置的虚拟环境。
如何告诉Emacs在给定项目中使用虚拟环境?
我在各种任务中都使用Emacs,现在开始学习Python编程,想继续使用Emacs来编写Python代码。
我已经为Python3设置了一个虚拟环境,并且它也按预期工作。我还安装了Emacs 24.5和最新版本的Emacs Prelude。
当我编辑Python源文件时,所有预期的功能都可以正常使用--代码自动完成、对象检查等等--但是这只针对我的系统范围内的Python安装,而不是我为项目设置的虚拟环境。
如何告诉Emacs在给定项目中使用虚拟环境?
Elpy 内置了对虚拟环境的支持,可以通过 Pyvenv 安装。 Pyvenv 也可以作为独立软件包安装。2014 年,Pyvenv 增加了对项目特定虚拟环境的支持,但我自己没有进行过实验,不知道它的工作效果如何。
如果您想在 Emacs 中编写 Python 代码,我建议安装 Elpy。它真正简化了创建良好环境的流程,并且是模块化的,因此您可以随时停用部分内容,当您决定要更具针对性的软件包时。
您还可以查看 virtualenvwrapper.el,尽管 Pyenv 看起来具有更多功能。还有 auto-virtualenv,它试图自动发现和激活虚拟环境。
好的,这篇文章帮助我了解这个主题。
将以下内容添加到您的init.el或~.emacs文件中:
(use-package pyvenv
:ensure t
:config
(pyvenv-mode t)
;; Set correct Python interpreter
(setq pyvenv-post-activate-hooks
(list (lambda ()
(setq python-shell-interpreter (concat pyvenv-virtual-env "bin/python3")))))
(setq pyvenv-post-deactivate-hooks
(list (lambda ()
(setq python-shell-interpreter "python3")))))
python -m venv env
然后打开emacs M-x pyvenv-activate RET dir_to_the_environment/env
最后使用C-c C-p运行Python子进程,使用该环境。所有功劳归功于fredrikmeyer。
M-x package-install
安装 pyvenv 时找不到该软件包。 - alperM-x package-refresh-contents
- Mandar Vaze