2010-02-20 11 views
11

Hoy traté de incluir más modos relacionados con Python en mi configuración de Emacs, pero no tuve mucha suerte.Especificando el intérprete de python de virtualenv en emacs

Lo primero que noté es que, dependiendo de cómo se lanzó Emacs (terminal vs desde el escritorio), el intérprete decide utilizar es diferente.

  • lanzado desde el menú de KDE: M-! cuál pitón da /usr/bin/python

  • lanzado desde la terminal: M-! lo que da pitón~/local/bin/python

puedo aceptar este tipo de puesto que tengo a mi .bashrc añadiendo ~/local/bin al camino y supongo que ignora KDE por defecto. Puedo solucionar este problema, sin embargo, lo que no entiendo es que si activo un virtualenv, esperaría M-! que python apunta a ~/project.env/bin/python sin embargo, todavía apunta a ~/local/bin/python.

Así, cuando Mx py-shell, me sale ~/local/bin/python por lo que si trato de Mx py-ejecutar-buffer en un módulo que reside en un paquete en el virtualenv, py-shell se quejará de no saber acerca de los módulos también en el virtualenv.

Configuración py-python-comando a "~/project.env/bin/python" parece tener ningún efecto después de todo lo que se ha cargado.

Así que supongo que el punto crucial de mi pregunta es, ¿cómo se consiguen todos las emacs relacionadas con Python apuntando al intérprete correcto?

Respuesta

8

Parece que python-shell hace lo correcto al seleccionar la configuración del entorno, mientras que py-shell no lo hace. Python-shell es proporcionado por python.el y py-shell es proporcionado por python-mode.el, hay informes de errores, etc. relacionados con esto, así que no voy a usar py-shell por el momento. Pensé que cerraría el ciclo de esto en caso de que el equipo de Google lo considere un elemento de alto rango por una razón u otra.

+3

Una página útil sobre el uso de virtualenv con Emacs (ya que encontré esta página a través de Google): http: // jesselegg.com/archives/2010/03/14/emacs-python-programmers-2-virtualenv-ipython-daemon-mode/ –

+0

(enlace actualizado del comentario anterior: http://jesselegg.com/archives/emacs-python-programmers -2-virtualenv-ipython-daemon-mode /) – semente

+0

Espejo: https://web.archive.org/web/20120120144128/http://jesselegg.com:80/archives/2010/03/14/emacs-python -programmers-2-virtualenv-ipython-daemon-mode/ – xtreak

4

Hay un virtualenv mode for Emacs. Requiere Emacs 23.1 o superior.

Este es un modo menor para el ajuste del entorno virtual para la shell Python usando virtualenv y apoya tanto python-mode.el y python.el.

+0

Pero el uso de esa herramienta impide el uso de virtualenvwrapper – PuercoPop

+3

Su publicación se refiere a [mi antiguo paquete virtualenv] (https://github.com/aculich/virtualenv.el) que ya no mantengo; hay al menos 3 paquetes más nuevos y mantenidos activamente: [virtualenvwrapper] (https://github.com/porterjamesj/virtualenvwrapper.el), [pyvenv] (https://github.com/jorgenschaefer/pyvenv), [python- entorno] (https://github.com/tkf/emacs-python-environment) – aculich

Cuestiones relacionadas