Emacs elpy Flymake 找不到pyflakes 即使已经通过pip安装了pyflake

Emacs elpy Flymake can't find pyflakes even though pyflake has been installed by 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 命令的可执行文件。但这似乎很老套,必须有一种正确的方法来 install/setup pyflakes 这样 flymake 就可以找到命令而无需手动创建包装脚本,不是吗?

I can run it manually from the pip installation directory using the command line like:

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

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

一种选择是创建符号 link,例如

ln -s /opt/local/.../python2.7/site-packages/pyflakes /opt/local/bin/pyflakes

当然,您必须使用完整路径。为了便于阅读,我缩短了它。这在 Linux 机器上比较常见,虽然我不知道它在 OSX.

上的使用有多广泛

我更喜欢的另一种选择是使用 pip install's --user option:

重新安装 pyflakes
--user 

Install to the Python user install directory for your platform. Typically ~/.local/, or %APPDATA%Python on Windows. (See the Python documentation for site.USER_BASE for full details.)

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

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

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