如何在shell中获取pythonpath?

it_*_*ure 44 python linux pythonpath

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", "copyright", "credits" or "license" for more information.  
>>> import sys  
>>> sys.path  
['', '/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', '/usr/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', '/usr/lib/python2.7/dist-packages/gst-0.10',  
'/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7']    
Run Code Online (Sandbox Code Playgroud)

如何在bash中获得所有pythonpath输出?
为什么 PYTHONPATH不能得到所有这些?

Hub*_*bro 77

环境变量PYTHONPATH实际上只被添加到Python搜索模块的位置列表中.您可以在终端中打印完整列表,如下所示:

python -c "import sys; print(sys.path)"
Run Code Online (Sandbox Code Playgroud)

或者如果想要UNIX目录列表样式(由分隔符:)输出,您可以这样做:

python -c "import sys; print(':'.join(x for x in sys.path if x))"
Run Code Online (Sandbox Code Playgroud)

这将输出如下内容:

/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

  • @variable 否,当Python解释器启动时,`PYTHONPATH`中的路径会添加到`sys.path`中的路径中。换句话说,“sys.path”将包含“PYTHONPATH”中的所有路径,但也包含其他路径,例如Python标准库的路径和已安装软件包的路径。 (2认同)

cja*_*gir 9

写吧:

只需在你的终端中编写哪个python,你就会看到你正在使用的python路径.

  • 这是python可执行文件的路径而不是PYTHONPATH.PYTHONPATH是python本身寻找要导入的模块的地方. (13认同)

小智 9

您也可以尝试以下操作:

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

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

输出将更加可读和干净,如下所示:

/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


mic*_*ica 6

Python 在启动时将一堆值加载到sys.path(通过字符串列表“实现”),包括:

  • 各种硬编码的地方
  • 的价值 $PYTHONPATH
  • 可能是启动文件中的一些东西(我不确定 Python 是否有rcfiles

$PYTHONPATH只是 的最终值的一部分sys.path

如果您追求 的值sys.path,最好的方法是询问 Python(感谢 @Codemonkey):

python -c "import sys; print sys.path"
Run Code Online (Sandbox Code Playgroud)


zzz*_*zzz 6

我们这些使用Python 3.x的人应该这样做:

python -c "import sys; print(sys.path)"
Run Code Online (Sandbox Code Playgroud)