问题标签 [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 回答
515 浏览

python-3.x - 在标准输入上使用相对导入的 Python 3 脚本给出错误:没有名为 '__main__.XXX' 的模块;'__main__' 不是一个包

在标准输入上使用相对导入的 Python 3 脚本给出错误:没有名为“ main .XXX”的模块;' main ' 不是一个包

如果我有一个使用以下形式的相对导入语句的 Python 3 脚本

而其他一些脚本将上述脚本作为模块导入,它可以正常工作。但是,当我在 Python 解释器的标准输入上执行包含上述行的脚本时,我收到以下形式的错误:

我需要使用标准输入的原因是因为我需要使用 Elpy ( https://elpy.readthedocs.io/en/latest/ ),它允许我评估该脚本(使用 Cc Cc 键绑定),然后添加其他在该脚本中调用函数的 Python 代码,类似于 pdb 'interact' 命令。

下面是一个独立的脚本来演示正在发生的事情:

这是上面的输出:

我尝试了各种方法,但无法提出解决方案。我能做的最好的就是删除最初的“。” 像这样:

但它破坏了正常执行:

为了完成上述工作,我必须PYTHONPATH在环境中设置以冒号分隔的目录列表以及我使用的所有脚本。这对于我自己的脚本来说是可行的,但是只要我想通过标准输入将其他已发布的脚本读入 python,它就会再次中断,除非我通过这些脚本并删除初始的“。” 暂时(这是一个麻烦和容易出错)。

那么,有没有办法让所有这些情况都有效?我确实可以选择更改我正在使用的工具(将脚本提供给 python 的标准输入的工具)以 在实际脚本之前向该标准输入流添加额外的代码,但如果这是解决方案,什么语句会强制它去工作?

有助于理解的有用参考资料,但这并没有揭示解决方案:

0 投票
0 回答
264 浏览

python - 如何使用 Pipenv 在 Emacs Elpy Python shell 中获取环境变量?

我在 Emacs 上使用 Elpy 并使用 pipenv。当我启动 Elpy Python shell 或将当前缓冲区发送到 shell 时,我无法获取我在终端中设置的环境变量。但是我非常希望能够将我的代码和环境变量发送到 Elpy shell,我该怎么做呢?

虚拟环境运行良好,因为我所有的包都在那里;另外,如果我使用 pipenv-shell,我可以访问我的环境变量。

我检查了一下os.environ,它表明我正在使用正确的虚拟环境,其他一切看起来就在那里,只是没有我自己设置的变量。有没有办法从 Elpy 设置环境变量?我查看了文档,但对此我仍然不清楚。我宁愿使用操作系统环境变量而不是“项目变量”或类似的东西,因为我还需要能够在 Emacs 之外编辑和运行代码。

编辑:好的,我意识到我可以使用 Mx setenv 来设置环境变量,这可以满足我的需要,但我仍然想知道如何让 Elpy 识别已经设置的环境变量。

0 投票
1 回答
396 浏览

autocomplete - 如何在 emacs 中使用 ELPY 进行自动完成工作?

我正在尝试为 python 编程配置我的 emacs。Elpy 自动完成建议在所有情况下都不起作用。有什么建议么?

这是我的elpy-config...

0 投票
0 回答
245 浏览

python-3.x - Elpy 初始化并按预期工作,除了错误突出显示功能

所以我是emacs的新手,只是在创建init.el之后和其他人一起启用了elpy,如下所示:

我期待它能够突出显示错误的陈述,如这篇关于 realpython 的文章中所解释的那样

但是,错误突出显示似乎无法按预期工作,如下所示:

真正的蟒蛇在此处输入图像描述

在此处输入图像描述

自动完成、语法高亮等其他功能按预期工作。请帮忙。TIA

0 投票
0 回答
57 浏览

python - 如何在单元测试失败后停止 python 进程终止,以便我可以调用 pdb.pm

这是一个关于基本 python 工作流程的新手问题。我有一个 python 文件库和一组相关的单元测试。其中一项测试失败了,我想在失败的地方注入 pdb。

我的工作流程使用 elpy 和 emacs,否则我非常喜欢并且更愿意坚持使用它们。我在 emacs 中加载测试文件,启动 python shell,然后在 python shell 中运行测试代码。有些东西会引发异常,从而导致测试失败。python 进程结束并打印堆栈跟踪。

如果进程仍然存在,我会调用pdb.pm()在错误源处启动调试器,以便我可以交互地调查堆栈,这就是我想要实现的目标。单元测试文件的基本结构是

0 投票
0 回答
292 浏览

emacs - Org-babel 不会在 src 块中打印来自 Anaconda 的结果

我需要一些帮助来正确配置以使用 babel 在 org-mode 文件anaconda中运行代码。python3

不知何故,当我尝试从 Anaconda 中的库运行代码时,babel 无法识别它。这是我从在 org-mode 中运行的代码中得到的结果

iPython 终端返回:

我的init文件的对应细节在这里

我究竟做错了什么?是virtualenv-path吗?我已经尝试了不同的选择但没有成功

0 投票
1 回答
572 浏览

emacs - emacs python-mode / elpy中的制表符和空格

这是一个令人沮丧的绝妙练习。出于某种原因,我的 python-mode / elpy 缓冲区总是有intent-tabs-mode nil. 我正在使用 python-mode 6.2.3、elpy 1.32.0 和 emacs 25.2.2。我的 .emacs 文件包含:

indent-tabs-mode仍然存在nil。当然,仅在 python 模式下。从describe-variablepython-mode / elpy 缓冲区中:

我使用的 python-mode.el 版本包含以下 [第 955-964 行]:

[第 5159-5165 行]

[第 6787-6820 行]

[第 22259-22266 行]

再次(与上面几乎相同)[第 25021-25033 行]:

indent-tabs-mode我已经设置了可以在 to 的任何 *.el 文件中找到的任何定义的每个版本,但t没有任何效果。

0 投票
0 回答
415 浏览

python - Emacs 无法找到 python

我正在尝试在 Doom Emacs 中启用 python 开发环境(我是新手);我安装了elpy;并尝试启动显示“找不到python但可以从Microsoft安装...”的shell。

然后我将它添加到我的 config.el 中:

又试了一次;在迷你缓冲区中显示:

但这就是我的 python 二进制文件所在的位置。我在“执行路径”中添加了相同的路径;仍然无法在 eshell 中运行 python。

0 投票
2 回答
989 浏览

emacs - 用诗歌设置 Emacs Elpy

如何配置 Elpy 以使用安装在 Poetry 项目虚拟环境中的开发依赖项,例如 Black、Jedi 和 flake8,而不是安装在系统范围内的依赖项?

0 投票
0 回答
41 浏览

python - Elpy 中有对象浏览器吗?

我的工作环境:

我在 Emacs 上安装了Melpa的 elpy。为了在我的代码中导航,我在开发 Python 应用程序时使用 Cc Co 查看定义的类、函数和方法的列表。然而,似乎没有显示全局变量和类属性。我想知道是否可以在 Emacs 中拥有一些允许查看当前打开项目中的所有内容的对象浏览器?我的意思是 Eclipse、Netbeans、Sublim 等我们可以拥有的树状/分层视图(通常作为侧边栏),显示所有内容:文件夹、类、方法、变量、属性。

为了在不同的文件夹中导航,我使用 Dired 来完成这项工作。因此,我目前正在尝试实现的主要两件事(如果可能在 Emacs 中)是:

  • 拥有一个具有我刚才描述的特性的对象浏览器。
  • 当我在对象浏览器中单击一个元素时,能够在单击该元素之前找到光标的完全相同的位置,而不是执行 CN 或 CP 以便在继续之前找到先前的位置。如果没有对象浏览器,在代码中,目前我可以在光标位于标识符上时M-.部分实现这一点。M-*但即使根据在线文档,这并不总是有效。