2015-07-23 7 views
2

После использования MacPorts пип-2.7 для установки pyflakes, я могу запустить его вручную из каталога установки пип с помощью командной строки, как:Emacs elpy Flymake не может найти pyflakes даже если pyflake был установлен пип

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

Однако я пытаюсь получить мой макинтош EMACS настройки среды с elpy и flymake, кажется, не быть в состоянии найти pyflakes, давая мне диалог, когда я открываю файл питона в elpy режиме, говоря:

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 мог найти команду без ручного создания сценариев-оболочек, не так ли?

ответ

3

Я могу запустить его вручную из каталога установки пип с помощью командной строки, как:

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 с помощью pip install's --user option:

--user 

Установить пользователю Python каталог установки для вашей платформы. Обычно ~/.local/или% APPDATA% Python в Windows. (Смотрите в документации по Python для site.USER_BASE для получения полной информации.)

--user отлично подходит для установки вещи, которые вы могли бы хотеть работать независимо от какого-либо конкретного проекта, как pyflakes. Он устанавливает вещи в ваш домашний каталог, а не в системный каталог, поэтому вам не нужны какие-либо повышенные привилегии для его использования.

Возможно, вам придется добавить местоположение пользователя в свою переменную $PATH, но вам нужно будет сделать это только один раз. Любые будущие инструменты, установленные с помощью pip install --user, станут доступны сразу.

На моей машине с Linux, которую я должен был добавить в мой $PATH, является ~/.local/bin/.