Python Emacs elpy Flymake罐头';即使pip已经安装了pyflake,也找不到pyflake

Python Emacs elpy Flymake罐头';即使pip已经安装了pyflake,也找不到pyflake,python,emacs,pip,macports,flymake,Python,Emacs,Pip,Macports,Flymake,使用macports pip-2.7安装pyflakes后,我可以使用以下命令行从pip安装目录手动运行它: python /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pyflakes myfile.py python /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7

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

python /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pyflakes myfile.py
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
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上的使用范围有多广

我更喜欢的另一种选择是使用以下方式重新安装
pyflakes

安装到平台的Python用户安装目录。在Windows上通常为~/.local/,或%APPDATA%Python。(有关详细信息,请参阅site.USER_BASE的Python文档。)

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

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

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