How to get the PYTHONPATH in shell?

后端 未结 6 588
失恋的感觉
失恋的感觉 2021-01-30 16:27
debian@debian:~$ echo $PYTHONPATH  
/home/qiime/lib/:  
debian@debian:~$ python  
Python 2.7.3 (default, Jan  2 2013, 16:53:07)   
[GCC 4.7.2] on linux2  
Type \"help\",         


        
相关标签:
6条回答
  • 2021-01-30 16:34

    Adding to @zzzzzzz answer, I ran the command:python3 -c "import sys; print(sys.path)" and it provided me with different paths comparing to the same command with python. The paths that were displayed with python3 were "python3 oriented".

    See the output of the two different commands:

    python -c "import sys; print(sys.path)"

    ['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/local/lib/python2.7/dist-packages/setuptools-39.1.0-py2.7.egg', '/usr/lib/python2.7/dist-packages']

    python3 -c "import sys; print(sys.path)"

    ['', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/dist-packages', '/usr/lib/python3/dist-packages']

    Both commands were executed on my Ubuntu 18.04 machine.

    0 讨论(0)
  • 2021-01-30 16:39

    Python, at startup, loads a bunch of values into sys.path (which is "implemented" via a list of strings), including:

    • various hardcoded places
    • the value of $PYTHONPATH
    • probably some stuff from startup files (I'm not sure if Python has rcfiles)

    $PYTHONPATH is only one part of the eventual value of sys.path.

    If you're after the value of sys.path, the best way would be to ask Python (thanks @Codemonkey):

    python -c "import sys; print sys.path"
    
    0 讨论(0)
  • 2021-01-30 16:43

    Just write:

    just write which python in your terminal and you will see the python path you are using.

    0 讨论(0)
  • 2021-01-30 16:45

    The environment variable PYTHONPATH is actually only added to the list of locations Python searches for modules. You can print out the full list in the terminal like this:

    python -c "import sys; print(sys.path)"
    

    Or if want the output in the UNIX directory list style (separated by :) you can do this:

    python -c "import sys; print(':'.join(x for x in sys.path if x))"
    

    Which will output something like this:

    /usr/local/lib/python2.7/dist-packages/feedparser-5.1.3-py2.7.egg:/usr/local/lib/
    python2.7/dist-packages/stripogram-1.5-py2.7.egg:/home/qiime/lib:/home/debian:/us
    r/lib/python2.7:/usr/lib/python2.7/plat-linux2:/usr/lib/python2.7/lib-tk:/usr/lib
    /python2.7/lib-old:/usr/lib/python2.7/lib- dynload:/usr/local/lib/python2.7/dist-
    packages:/usr/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages/PIL:/u
    sr/lib/python2.7/dist-packages/gst-0.10:/usr/lib/python2.7/dist-packages/gtk-2.0:
    /usr/lib/pymodules/python2.7
    0 讨论(0)
  • 2021-01-30 16:45

    You can also try this:

    Python 2.x:
    python -c "import sys; print '\n'.join(sys.path)"

    Python 3.x:
    python3 -c "import sys; print('\n'.join(sys.path))"

    The output will be more readable and clean, like so:

    /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7 /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload /Library/Python/2.7/site-packages /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC

    0 讨论(0)
  • 2021-01-30 16:55

    Those of us using Python 3.x should do this:

    python -c "import sys; print(sys.path)"
    
    0 讨论(0)
提交回复
热议问题