web-dev-qa-db-fra.com

'quel python' et 'echo PYTHONPATH' donnent des répertoires différents, qu'est-ce que cela signifie?

J'utilise Ubuntu 16.04 avec python 2.7. J'essaie de lancer python à partir d'un répertoire autre que celui indiqué par

which python

À cette fin, je mets

PYTHONPATH=$PYTHONPATH:/home/myname/pybombs/lib/python2.7/dist-packages/

dans mon fichier bashrc. Maintenant, which python renvoie /usr/bin/python et echo PYTHONPATH renvoie :/home/myname/pybombs/lib/python2.7/dist-packages/.

Ne devraient-ils pas renvoyer les mêmes répertoires?

1
Usama Saeed

De man python:

   PYTHONPATH
          Augments  the  default search path for module files.  The format
          is the same as the Shell's $PATH: one or  more  directory  path‐
          names   separated   by  colons.   Non-existent  directories  are
          silently ignored.   The  default  search  path  is  installation
          dependent,  but  generally begins with ${prefix}/lib/python<ver‐
          sion> (see PYTHONHOME above).  The default search path is always
          appended  to  $PYTHONPATH.   If  a script argument is given, the
          directory containing the script is inserted in the path in front
          of  $PYTHONPATH.  The search path can be manipulated from within
          a Python program as the variable sys.path.

La variable $PYTHONPATH ne spécifie que des emplacements supplémentaires à partir desquels vous pouvez importer des modules. Cela n'a rien à voir avec l'emplacement de l'exécutable interpréteur Python que vous obtenez en sortie de which python.

0
Byte Commander