问题标签 [elpy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
253 浏览

python - Comint-Mode 是否有类似 eval-print-last-sexp 的功能?

在 emacs 中,对于 comint 派生模式,是否有与 eval-print-last-sexp 等效的功能?

具体来说,我正在使用 python-mode(使用 elpy)并且正在寻找一种方法将区域的内容发送到 Python 进程,然后在我正在使用的 python 脚本的下一行打印结果。

将结果打印到消息缓冲区也是可以接受的,但是 eval-print-last-sexp 的行为将是首选。

我正在运行 Emacs 25.1.1 和 elpy 1.13.0。

0 投票
2 回答
1686 浏览

django - 如何将 Emacs 的 Elpy 缓冲区内 python 解释器连接到 docker 容器?

我开始开发将在 Docker 容器中运行的 Django 应用程序。我希望能够在 Emacs 中使用交互式 python,它在 Docker 容器和 Django 应用程序的上下文中执行代码。本质上,我希望 Emacs 使用的 Python 解释器在 Docker 容器中运行。

在很大程度上,我通过创建一个修改后的 Dockerfile 来实现这一点,该 Dockerfile 与我的实际 Dockerfile 容器不同,而不是调用它结尾的 Django 命令:

这意味着当我运行该 Docker 容器时,我会得到一个实际在容器中运行的 Django 解释器。我让 Elpy 在启动 python shell 时调用它,方法是添加:

到我的.emacs.d/init.el文件。其中“/path_to_my_script/run_shell.sh”脚本是运行容器的脚本。

这实际上在大多数情况下都有效。我能够突出显示一行代码,例如

并运行 Emacs 命令elpy-shell-send-region-or-buffer 它将执行代码。然后我可以突出显示

它将打印当前时间。我已经通过运行验证了这段代码实际上是在我的容器上运行的:

并查看我的 Docker 容器用户的主目录。

这个设置我仍然遇到的问题是,当我尝试使用相同的 elpy-shell-send-region-or-buffer 命令同时执行多行 python 时。当我突出显示多行并执行该命令时,我在 python shell 中收到以下错误:

我一直无法找到以下问题的任何答案:

  • 为什么 codecs.py 试图读取 tmp 文件?
  • Python 创建的所有临时文件是做什么用的?(如果您正在运行一些 python 代码并查看/tmp目录,您可能会看到很多文件,例如py271761jE。)
  • 为什么我的 Docker 容器中的 /tmp 目录是空的?似乎 Python 想要创建并读取该目录中的文件但失败了。
  • 我该如何调试呢?

如果有人对这些问题中的任何一个有任何答案,那将是一个巨大的帮助。我一直无法找到有关此问题的任何信息。谷歌搜索 /tmp 目录中的 py* 文件只会显示 tempfile 包。

我不知道发生了什么,但我目前的理论是,当一个多行区域被发送到 python shell 时,它需要处理换行符,因此它尝试使用编解码器文件。我认为这个文件不知何故依赖于临时文件,而 docker 容器把它搞砸了。我不知道这个理论有多接近,但我不知道如何进一步研究它。

0 投票
1 回答
665 浏览

emacs - Elpy 允许 pyenv 在项目基础上工作

到目前为止,我的所有编码项目都使用 Emacs。很快我将第一次开始一些 python 项目,并且也很想坚持使用 Emacs。

我正在研究 elpy,它似乎已经提供了很多所需的功能。我无法完全弄清楚的部分如下。我喜欢定义要在项目基础上使用的虚拟环境和 python 版本。假设我启动了一个项目 A,然后我会使用pyenv-virtualenvpyenv-virtualenvwrapper来设置它

通过这样做,我将 python 版本 3.4.2 链接到该特定的 virtualenv / 项目。结合elpy,我有两个问题。

问:这是一个相当基本的问题。以上都可以通过终端来实现。emacs 支持这一点有什么优势?我的工作流程是:创建具有关联 virtualenv 和 python 版本的项目。激活 virtualenv 并开始在 emacs 中编码。如果我需要安装一个包,我将在终端中运行 pip 以确保正确捕获 virtualenv。在 emacs 中支持这一点肯定是有好处的。由于我缺乏知识,我只是看不到它:)

正如所指出的,我们希望 emacs / elpy 支持这一点肯定有充分的理由。我的第二个问题是

**问题:如何在 emacs 中实现这一点?像这个博客这样的Lokks有一个解决方案。我想知道是否有人已经尝试过这个设置,如果它是一个在概念上有意义的简洁解决方案。**

0 投票
1 回答
909 浏览

python - 有效语法的语法错误突出显示 - Python 3.6

下面是elpy-config

但语法检查器不接受 python 3.6 的 f-string 语法,

在此处输入图像描述


C-u C-c C-c在 emacs 中给出正确的输出,但语法检查器确实识别这种语法

问题:

我需要升级语法检查器吗?

0 投票
0 回答
410 浏览

python - emacs 作为带有 elpy 和 django 的 python IDE

我用 elpy 配置了我的 emacs,它工作得很好:语法更正、自动完成、查看文档、转到定义等。

不幸的是,它不适用于 django 类。有什么方法可以在我的 emacs 中使用 django 吗?

0 投票
1 回答
353 浏览

flake8 - 打开python文件但正确设置薄片时Flymake配置错误

当我在 emacs 中打开一个 python 文件时,我收到以下错误消息:

Flymake:运行时出现配置错误(flake8 >..../xyz_flymake.py)。Flymake 将关闭。

但另一方面,我似乎已经配置了 elpy 正常工作所需的所有模块:

我该如何解决这个问题?

0 投票
3 回答
2080 浏览

emacs - 如何禁用 Emacs elpy 垂直引导线以进行缩进?

我正在为 python 开发设置 Emacs。

所以我安装了elpy。

但我不喜欢缩进的垂直引导线。

如何禁用它或更改它的颜色?

在此处输入图像描述

0 投票
2 回答
576 浏览

python - 如何通过 Emacs (elpy) 在类中找到可用的参数 python

当我将 emacs 与 elpy 一起使用时,几乎每次我开始编写函数代码时都键入:

我自动进入底部窗口:

但是当我尝试使用 enumerate 或 sort 等内置类型时

我在 elpy 中没有得到那个漂亮的参数列表。如果没有,那么即使通过编写如下调用也有办法做到这一点:

提前欣赏任何指针

0 投票
0 回答
95 浏览

python - 如何将 python 2 用于特定项目?

我的全局 elpy 设置如下

我需要处理一个使用 python 2 的项目。如何在不更改全局设置的情况下做到这一点?

0 投票
1 回答
936 浏览

windows - using matplotlib from ipython session in emacs on windows

*** Update: the problem is with running python inside emacs on windows. ipython and elpy are off the hook. From a plain DOS prompt: python; from pylab import *; figure(1); show() works. If I start (windows-native) emacs with emacs -Q (turn off all customizations, so no elpy etc), then Alt-x run-python, I get a python (not ipython) prompt within emacs. from pylab import *; figure(1); show() doesn't work - no figure window appears, and I don't get back a python prompt.

*** Original post: Very annoying problem, have talked to elpy and matplotlib people but we are stumped.

Goal: run ipython as a process within emacs, and get matplotlib plots to work. Regarding OSes, "linux is nice but I prefer emacs".

My setup: Windows 7, Python packages thru Anaconda (python 3.6.2, ipython 6.1.0, matplotlib 2.0.2), emacs - 25.3 official GNU windows build (NOT cygwin, though I use the cygwin tools like grep, diff, etc in emacs), elpy emacs package for working with python.

Elpy has support for ipython. As long as I don't make a plot, this works fine - I can edit python files in emacs, send them to an ipython session, work in it. Also, outside of emacs if I just run ipython from a DOS prompt, matplotlib figures work fine (also work fine from Spyder).

I have made sure to revert to a plain vanilla setup - no config files, TkAgg matplotlib backend (those Qt gave similar but slightly different problems).

So: I start ipython within emacs, and do 'pylab'.

** plt.ion(), figure(1): window appears, with buttons on bottom. ipython prompt works. If I interact with the figure window, I get “not responding” in title, and MS Windows’ spinning shell. If I close the figure window by clicking on the X in upper right, windows says “app not responding.” Dialog box w/ End Process or Cancel. End process kills figure and ipython session.

** If instead plt.ioff(), figure(1): plot(1,1) show() I get a figure window with a plot, but if I interact with it I get “not responding.” ipython prompt seems fine. I can close window from prompt close(1) and ipython fine.

Tom Caswell (matplotlib) thinks it's an issue with the input hook. I don't know how to work with this, but maybe it's enough of a clue.

I'd think the 'Venn diagram' for people using python for science + emacs + Windows wouldn't be that small.