python-如何在shell中获取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']
如何以bash方式获得全部PYTHONPATH的输出?
为什么echo $PYTHONPATH无法全部获取?
6个解决方案
74 votes
实际上,仅将环境变量:添加到Python搜索模块的位置列表中。 您可以像这样在终端中打印出完整列表:
python -c "import sys; print(sys.path)"
或者,如果要使用UNIX目录列表样式的输出(用:分隔),可以执行以下操作:
python -c "import sys; print(':'.join(x for x in sys.path if x))"
它将输出如下内容:
/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
Hubro answered 2020-07-30T01:31:43Z
8 votes
写就好了:
只需在终端中编写哪个python,您就会看到您正在使用的python路径。
cjahangir answered 2020-07-30T01:32:07Z
6 votes
使用Python 3.x的我们应该这样做:
python -c "import sys; print(sys.path)"
zzzzzzz answered 2020-07-30T01:32:27Z
4 votes
Python在启动时,将一堆值加载到sys.path(通过字符串列表“实现”)中,包括:
各种硬编码的地方
sys.path的值
可能是启动文件中的一些内容(我不确定Python是否具有sys.path)
sys.path仅是sys.path最终值的一部分。
如果您追求的值是sys.path,则最好的方法是询问Python(感谢@Codemonkey):
python -c "import sys; print sys.path"
michaelb958 answered 2020-07-30T01:33:09Z
1 votes
添加到@zzzzzzz答案中后,我运行了命令:python3 -c "import sys; print(sys.path)",与同一命令python相比,它为我提供了不同的路径。python3显示的路径是“面向python3的”。
查看两个不同命令的输出:
python3 -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']
这两个命令都在我的Ubuntu 18.04计算机上执行。
Guy Avraham answered 2020-07-30T01:33:48Z
1 votes
您也可以尝试以下操作:
Python 2.x:
python -c "import sys; print '\n'.join(sys.path)"
Πυθωνξ.χ:
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
george6662007 answered 2020-07-30T01:34:35Z