查看包搜索路径sys.path的N个方法

2020年10月26日 / 10次阅读 / Last Modified 2020年10月27日
sys模块

import失败的时候,常常要去看看模块所在的路径是否包含在了sys.path内。有很多方法可以查看sys.path。

常规方法

常规方法就是登陆python shell,导入sys,查看sys.path。

>>> from pprint import pprint
>>> import sys
>>> pprint(sys.path)
['',
 '/usr/local/python3.8.6/lib/python38.zip',
 '/usr/local/python3.8.6/lib/python3.8',
 '/usr/local/python3.8.6/lib/python3.8/lib-dynload',
 '/home/xinlin/.local/lib/python3.8/site-packages',
 '/usr/local/python3.8.6/lib/python3.8/site-packages']

python3 -c 方法

python3 -c,表示直接在命令行执行python语句。

$ python3 -c 'print("\n".join((__import__("sys").path)))'

/usr/local/python3.8.6/lib/python38.zip
/usr/local/python3.8.6/lib/python3.8
/usr/local/python3.8.6/lib/python3.8/lib-dynload
/home/xinlin/.local/lib/python3.8/site-packages
/usr/local/python3.8.6/lib/python3.8/site-packages

python3 -m 方法

python3 -m,表示将模块执行,有很多模块是可以直接执行的,它们都含有可直接执行的代码,或用于测试,或提供某种功能。

$ python3 -m site
sys.path = [
    '/home/xinlin/repos',
    '/usr/local/python3.8.6/lib/python38.zip',
    '/usr/local/python3.8.6/lib/python3.8',
    '/usr/local/python3.8.6/lib/python3.8/lib-dynload',
    '/home/xinlin/.local/lib/python3.8/site-packages',
    '/usr/local/python3.8.6/lib/python3.8/site-packages',
]
USER_BASE: '/home/xinlin/.local' (exists)
USER_SITE: '/home/xinlin/.local/lib/python3.8/site-packages' (exists)
ENABLE_USER_SITE: True

python3 -m site,算不算python3的一个彩蛋呢!。。。(我知道的python第一个彩蛋是python的禅

-- EOF --

本文链接:https://www.pynote.net/archives/2658

留言区

《查看包搜索路径sys.path的N个方法》有1条留言

电子邮件地址不会被公开。 必填项已用*标注

  • 麦新杰

    pprint和site模块都来自python标准库。 [回复]


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top