Сегодня я пытался принести больше связанных с Python режимов в свою конфигурацию Emacs, но у меня не было большой удачи.
Сначала то, что я заметил, - то, что в зависимости от то, как Emacs запускается (терминал по сравнению с от рабочего стола), интерпретатор, который он решает использовать, отличается.
запущенный из меню KDE: M-! который дает Python /usr/bin/python
запущенный от терминала: M-! который дает Python ~/local/bin/python
Я могу отчасти принять это, так как у меня есть свой .bashrc, добавляющий ~/local/bin к пути, и я предполагаю, что KDE игнорирует это по умолчанию. Я могу работать вокруг этого, однако что я не понимаю, затем, если бы я активирую virtualenv, я ожидал бы M-! на какой Python указать на ~/project.env/bin/python однако это неподвижные точки к ~/local/bin/python.
Таким образом, когда я py-оболочка M-x, я получаю ~/local/bin/python поэтому, если я попробую к M-x py-execute-buffer на модуле, который находится в пакете в virtualenv, то py-оболочка будет жаловаться на не знание о модулях также в virtualenv.
Установка py-python-command к "~/project.env/bin/python", кажется, не имеет никакого эффекта после того, как все будет загружено.
Таким образом, я предполагаю, что полное затруднение моего вопроса, как каждый получает весь Python связанный материал emacs, указывающий на правильный интерпретатор?
Кажется, что оболочка python поступает правильно, выбирая параметры среды, тогда как оболочка python этого не делает. python-shell предоставляется python.el, а py-shell предоставляется python-mode.el. С этим связаны отчеты об ошибках и т. д., поэтому я просто не собираюсь сейчас использовать py-shell. Подумал, что замкну цикл на этом вопросе, если машина Google по той или иной причине сочтет это элементом с высоким рейтингом.