Подтвердить что ты не робот

Задание интерпретатора python из virtualenv в emacs

Сегодня я пытаюсь задействовать больше способов, связанных с Python, в моя конфигурация Emacs, но мне не повезло.

Сначала я заметил, что в зависимости от того, как Emacs (терминал против рабочего стола), интерпретатор, который он решает использование отличается.

  • запущен из меню KDE: M-! which python дает /usr/bin/python

  • запущен с терминала: M-! which python дает ~/local/bin/python

Я могу принять это, так как у меня есть .bashrc appending ~/local/bin в пути, и я думаю, KDE игнорирует это по умолчанию. Я могу работайте вокруг этого, однако то, что я не понимаю, тогда, если я активировать virtualenv, я ожидал бы M-!, на котором python указывает на ~/project.env/bin/python, однако он все еще указывает на ~/local/bin/python.

Таким образом, когда я M-x py-shell, я получаю ~/local/bin/python, поэтому, если я попытаюсь M-x py-execute-buffer на модуле, который находится в пакете в virtualenv, py-shell будет жаловаться на незнание модулей также в virtualenv.

Настройка py-python-команды на "~/project.env/bin/python", похоже, не имеет эффект после загрузки.

Итак, я думаю, что основной вопрос моего вопроса: как получить все связанный с python материал emacs, указывающий на правильный интерпретатор?

4b9b3361

Ответ 1

Итак, кажется, что python-shell делает правильные вещи, выбирая настройки среды, в то время как py-shell - нет. python-shell предоставляется python.el, а py-shell предоставляется python-mode.el, там есть сообщения об ошибках и т.д., поэтому я просто не буду использовать py-shell. Понял, что я закрою цикл на этом, если машина Google считает, что это высокопоставленный элемент по той или иной причине.

Ответ 2

Существует режим virtualenv для Emacs. Для этого требуется Emacs 23.1 или выше.

Это второстепенный режим настройки виртуальная среда для Python оболочка с использованием virtualenv и поддерживает и python-mode.el, и python.el.