Elpy позволяет pyenv работать на проектной основе

До сих пор я использовал Emacs для всех своих проектов кодирования. Скоро я впервые начну несколько проектов на Python и хотел бы использовать для них Emacs.

Я искал elpy, который, кажется, уже предоставляет много желаемой функциональности. Часть, которую я не смог полностью понять, заключается в следующем. Мне нравится определять виртуальные среды и версии Python для использования на основе проекта. Допустим, я запускаю проект A, тогда я бы использовал pyenv-virtualenv или pyenv-virtualenvwrapper, чтобы настроить его.

pyenv virtualenv 3.4.2 my-virtual-env-3.4.2

Сделав это, я связал версию Python 3.4.2 с этим конкретным виртуальным проектом/проектом. У меня есть два вопроса по этому поводу в сочетании с elpy.

Вопрос. Это довольно простой вопрос. Все вышеперечисленное может быть достигнуто через терминал. В чем преимущество emacs для поддержки этого? Рабочий процесс для меня будет таким: создать проект со связанными версиями virtualenv и python. Активируйте virtualenv и начните программировать в emacs. Если мне нужно установить пакет, я запускаю pip в терминале, чтобы обеспечить правильный захват virtualenv. Должна быть причина, по которой полезно поддерживать это в emacs. С моим недостатком знаний я просто этого не вижу :)

Как уже отмечалось, есть веская причина, по которой мы хотим, чтобы emacs/elpy поддерживал это. Тогда мой второй вопрос будет

**Вопрос: Как я могу добиться этого в emacs? У таких локаций, как этот блог, есть решение. Мне было интересно, если кто-то уже пробовал эту настройку, если это аккуратное решение с концептуальным смыслом. **


person math    schedule 06.04.2017    source источник


Ответы (1)


Ну, я уверен, что цель состоит в том, чтобы использовать больше функций, чем просто подсветка синтаксиса: flycheck/flake8/linting, рефакторинг, запуск тестов elpy для использования правильной версии Python, установка пакета pip непосредственно из emacs и тому подобное. Вы можете продолжать делать это в терминале, но как только вам понадобится функция emacs, вам нужно будет ее настроить.

Я нашел два способа сделать это (см. страницу wikemacs python и дважды проверил на melpa): pyenv-mode (в melpa) и pyenv-mode-auto (изменить версию при наличии файла версии .python).

person Ehvince    schedule 06.04.2017
comment
ни один из них не приводит к тому, что elpy-config знает, что venv используется, к сожалению. - person RichieHH; 25.03.2021