【问题标题】:Emacs elpy Flymake can't find pyflakes even though pyflake has been installed by pip即使 pip 已经安装了 pyflake,Emacs elpy Flymake 也找不到 pyflakes
【发布时间】:2015-10-13 04:12:41
【问题描述】:

使用 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 就可以在不手动创建包装脚本的情况下找到命令,不是吗?

【问题讨论】:

    标签: python emacs pip macports flymake


    【解决方案1】:

    我可以使用命令行从 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's --user option 重新安装pyflakes

    --user 
    

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-02-05
      • 2019-10-02
      • 2012-05-16
      • 2019-05-09
      • 1970-01-01
      • 2021-11-06
      • 2021-12-14
      • 2014-10-26
      • 1970-01-01
      相关资源
      最近更新 更多