【问题标题】:Emacs: Program named "virtualenv" does not existEmacs:名为“virtualenv”的程序不存在
【发布时间】:2015-02-17 23:35:06
【问题描述】:

我在 python 模式下遇到以下错误消息。

Error (jedi): Failed to start Jedi EPC server.
*** 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.

然后我尝试了M-x jedi:install-server。然后它抱怨说

Program named "virtualenv" does not exist

现在根据我从 google 获得的结果,我在我的 emacs.d/init.el 文件中添加了以下行,但我仍然收到相同的错误。 请注意,我使用的是 Windows 7

(when (memq window-system '(mac ns))
  (exec-path-from-shell-initialize))

在Windows环境下尝试在emacs中设置jedi已经给我带来了很多时间和麻烦,我只想一劳永逸地完成这个。

理想情况下,我正在寻找一个答案,列出在 emacs 中设置 virtualenv(在 Windows 7 上)所需的所有步骤。

【问题讨论】:

  • 如果您输入M-x describe-variable RET window-system RET,您可能不会返回macns 的值。 exec-path-from-shell-initialize 来自一个专用于 OSX 的库,不是 Windows:github.com/purcell/exec-path-from-shell 你的硬盘上安装了 Windows 上的可执行文件吗?
  • 您确定 virtualenv 已安装并在您的 PATH 中吗?
  • @lawlist 我刚刚做了pip install virtualenvwhich virtualenv 返回/usr/bin/virtualenv(全部在cygwin 中完成)。我现在应该如何进行?
  • 我没有绝地经验,但源代码似乎正在寻找变量python-environment-virtualenv 的列表的第一个元素。我的这个推断是基于查看jedi.el 的第 1089 行和第 1115 行:github.com/tkf/emacs-jedi/blob/master/jedi.el 所以,我的第一直觉(不知道我在做什么)会输入:M-x describe-variable RET python-environment-virtualenv RET 并看看它说了什么。由于您的可执行文件位于/usr/bin/ 中,因此只有在该列表中的汽车包含/usr/bin/ 时才能找到它。如果没有,那么。 . .

标签: python emacs virtualenv


【解决方案1】:

我遇到了同样的问题,但在 Windows 10 上。我通过以下步骤让它工作:

在终端(cmd/powershell/..)中:

pip install virtualenv

之后,在 emacs 中:

M-x jedi:install-server

Emacs 可以安装服务器。

仅供参考,我正在运行 python3.5,pip 版本 19.2.3,emacs26.2,W10

【讨论】:

    【解决方案2】:

    我认为很明显virtualenv 不见了。所以你需要做 只有两件事。通过这种方式,您不必担心 PATH 变量和所有 那个。

    1. 安装virtualenv,但你觉得舒服,(我使用conda包管理器来处理所有与python相关的东西,并有安装说明,随意使用pip或其他)

       conda activate yourenv
      
       conda install virtualenv
      
       conda list virtualenv #check if virtualenv is actually installed
      
    2. 查找virtualenv 所在的位置(因为我使用 conda,我知道文件在我安装的bin 文件夹中)

    3. 然后显示jedi,其中virtualenv 在emacs 中C-h v jedi:environment-virtualenv "~/path-to-conda-env/bin/virtualenv")。如需更多帮助,请查看 documentation 中的 Configuration 或 在下面发表评论。

    4. M-x jedi:install-server 在 emacs 中

    5. 测试.py 文件。

    【讨论】:

    • 如果您出于其他原因仍在使用 Conda,这是有道理的;但是要向目前正在使用其他包管理器的人推荐它,对于这个特定问题来说,这是巨大的矫枉过正。
    • 我的意思是我只是展示了一种安装virtualenv 的方法,对吗?由您决定使用什么包管理器。上一个答案建议使用 pip 例如。
    • 假设您是一个不知道 Conda 是什么的初学者,并且不知何故最终开始着手使用它,以便他们可以按照您的指示解决此问题。您的回答应该真正指出他们可能不想这样做的原因。
    • 我很抱歉。你会如何建议我改变答案?我应该在顶部发出警告还是删除答案?我已经更新了答案,试图让它更“友好”。请告诉我。非常感谢您的关注。
    • 我想这个评论线程和你最近的变化应该足以给任何人足够的警告。 (虽然这些 cmets 最终可能会被删除。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-02
    • 2012-11-18
    相关资源
    最近更新 更多