2010-02-20 7 views
11

Aujourd'hui, j'ai essayé d'apporter plus de modes liés Python dans ma configuration Emacs mais je n'ai pas eu beaucoup de chance.Spécification de l'interpréteur python de virtualenv dans emacs

d'abord ce que je l'ai remarqué est que selon la façon dont Emacs est lancé (borne vs depuis le bureau), l'interprète, il décide d'utiliser est différent.

  • lancé à partir du menu KDE: M-! lequel python donne /usr/bin/python

  • lancé depuis le terminal: M-! qui python donne ~/local/bin/python

Je peux accepter ce genre de depuis que je suis mon .bashrc annexant ~/local/bin sur le chemin et je suppose que KDE ignore que par défaut. Je peux travailler autour de cela, mais ce que je ne comprends pas est alors si je activer un virtualenv, je m'attendrais à M-! quel python pointer vers ~/project.env/bin/python mais il pointe toujours à ~/local/bin/python.

Ainsi quand je Mx py-shell, je reçois ~/local/bin/python donc si je tente de Mx py-execute-tampon sur un module qui se trouve dans un paquet dans le virtualenv, py-shell va se plaindre de ne pas savoir sur les modules également dans le virtualenv.

Réglage py-python-commande pour "~/project.env/bin/python" semble avoir aucun effet après tout est chargé.

Donc, je pense que le point crucial de ma question est, comment obtient-on tous les les trucs emacs liés à python pointant vers l'interpréteur droit?

Répondre

8

Il semble donc que python-shell fasse le bon choix en choisissant les paramètres d'environnement, contrairement à py-shell. python-shell est fourni par python.el et py-shell est fourni par python-mode.el, Il y a des rapports de bogues, etc. liés à cela, donc je ne vais pas utiliser py-shell pour l'instant. J'ai compris que je fermerais la boucle au cas où la machine Google considérerait cela comme un élément de haut rang pour une raison ou une autre.

+3

Une page utile sur l'utilisation de virtualenv avec Emacs (depuis que j'ai trouvé cette page via Google): http: // jesselegg.com/archives/2010/03/14/emacs-python-programmeurs-2-virtualenv-ipython-daemon-mode/ –

+0

(lien mis à jour du commentaire ci-dessus: http://jesselegg.com/archives/emacs-python-programmers -2-virtualenv-ipython-daemon-mode /) – semente

+0

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

4

Il existe un virtualenv mode for Emacs. Il nécessite Emacs 23.1 ou supérieur.

Ceci est un mode mineur pour le réglage du environnement virtuel pour la coquille en utilisant python virtualenv et prend en charge à la fois python-mode.el et python.el.

+0

Mais l'utilisation de cet outil exclut l'utilisation de virtualenvwrapper – PuercoPop

+3

Votre message fait référence à [mon ancien paquet virtualenv] (https://github.com/aculich/virtualenv.el) que je ne maintiens plus; il y a au moins 3 paquets plus récents, maintenus activement: [virtualenvwrapper] (https://github.com/porterjamesj/virtualenvwrapper.el), [pyvenv] (https://github.com/jorgenschaefer/pyvenv), [python- environnement] (https://github.com/tkf/emacs-python-environment) – aculich

Questions connexes