Emacs elpy Flymake 找不到 pyflakes,即使 pyflake 已被 pip 安装



在使用macports pip-2.7安装pyflakes之后,我可以使用命令行从pip安装目录手动运行它,如:

python /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pyflakes myfile.py

然而,我试图用elpy设置我的mac emacs环境,flymake似乎无法找到pyflakes,当我在elpy模式下打开python文件时,给我一个对话框说:

Flymake: Failed to launch syntax check process 'pyflakes' (with args myfile.py): Searching for program: no such file or directory, pyflakes. Flymake will be switched off.

我可以进入/opt/local/bin,并尝试编写自己的可执行文件,运行上面的python命令。但这似乎很黑客,必须有一个正确的方法来安装/设置pyflakes,这样flymake可以找到命令,而无需手动创建包装器脚本,不是吗?

我可以使用命令行从pip安装目录手动运行它,如:

python /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pyflakes myfile.py

除非这个目录在您的$PATH中,否则Emacs无法知道在哪里找到pyflakes

一个选项是创建一个符号链接,例如
ln -s /opt/local/.../python2.7/site-packages/pyflakes /opt/local/bin/pyflakes

当然,您必须使用完整路径。为了便于阅读,我把它缩短了。这在Linux机器上比较常见,尽管我不知道它在OSX上的使用有多广泛。

另一个选项,我更喜欢的一个,是使用pip install--user选项重新安装pyflakes:

--user 

安装到您平台的Python用户安装目录。通常~/。local/,或Windows上的%APPDATA%Python。(请参阅Python文档了解站点。USER_BASE查看详细信息)

--user非常适合安装您可能希望独立于任何特定项目运行的东西,例如pyflakes。它将东西安装到你的主目录,而不是系统目录,所以你不需要任何提升的权限来使用它。

您可能必须将用户位置添加到$PATH变量中,但您只需要这样做一次。将来使用pip install --user安装的任何工具都将立即可用。

在我的Linux机器上,我必须添加到$PATH的目录是~/.local/bin/

相关内容

最新更新