在使用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/
。