2010-06-24 6 views
1

J'ai besoin de connecter MySQLdb - module. Je télécharge MySQLdb - module et l'installe. Mais quand j'écris (en shell interactif python): import MySQLdb - je reçois no module named MySQLdb.Export PYTHONPATH - erreur de syntaxe

Puis j'ai décidé d'inclure le répertoire MySQLdb dans la variable PYTHONPATH.

write (en python shell interactif): export PYTHONPATH=${PYTHONPATH}:/where/module/lives/

Et en réponse que je reçois une erreur de syntaxe: invalid syntax: export PYTHONPATH ^ = $ {PYTHONPATH}:/où/module/vit/

Quel est le problème avec la syntaxe ici?

Répondre

10

Si vous voulez vraiment dire que vous tapez

>>> export PYTHONPATH... 

dans le Python « shell interactif », l'erreur de syntaxe est parce qu'il est pas valide Python, il est une instruction de commande shell (bash):

$ export PYTHONPATH="$PYTHONPATH:/where/module/lives/" 
$ python 
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) 
>>> import MySQLdb 
>>> 
+0

Si le colon dans cette déclaration bash un point-virgule? Ne voulez-vous pas que '/ some/path' devienne'/some/path;/où/the/module/lives/'? –

+1

Les points-virgules sont [séparateurs de chemins sous Windows et les deux-points sous UNIX] (http://docs.python.org/2/using/cmdline.html#envvar-PYTHONPATH). La question utilisait la syntaxe Unix même si l'OP ne disait pas explicitement quel OS était utilisé. – msw

+0

Juste au moment où je pensais que ça allait bien chez Linux, il y a quelque chose de vraiment basique que je ne connaissais pas! –

5

Si vous souhaitez modifier le chemin d'accès des paquets au sein de Python, vous pouvez faire:

import sys 
sys.path.append('/where/module/lives/') 

la syntaxe export PYTHONPATH=… est compris par (Bourne) coquilles (bash, etc.).

Les deux utilisations ont leur avantage:

  • Pour les modules qui ne sont pas utilisés souvent, la « dans » l'approche Python est souvent préférable, puisque vous n'avez pas polluer PYTHONPATH avec le chemin à tous les modules mineurs.
  • Pour les modules qui sont utilisés dans de nombreux programmes, l'approche shell est souvent la meilleure; dans ce cas, vous pouvez modifier définitivement PYTHONPATH en le mettant à jour dans le fichier d'initialisation du shell (.bashrc, etc.).
+0

merci. Je saurai. – Kalinin

0

Si vous voulez que le changement soit permanent, puis ajoutez cette ligne dans ~/.bashrc

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages