假设我想使标准库中的程序包不可导入。因此,在运行import datetime
时,“ datetime”,“ collections”等不应该导入。
我没有用例,但是实现这一点将帮助我了解Python如何解析软件包。
我尝试这样做:
import sys
sys.path = []
sys.prefix = ''
sys.exec_prefix = ''
但是尽管如此,当我运行import datetime
时,还是找到了该软件包(位于Ubuntu上的/usr/lib/python3.6目录中)。
我还尝试使用python3.6 -S -s
启动Python,以避免自动加载site.py,但这也无济于事。
我的猜测是Ubuntu随附的Python解释器具有硬编码的路径/usr/lib/pythonX.Y
,但是我无法通过广泛的互联网搜索来确认这一点。
那么Python如何知道它应该在/usr/lib/pythonX.Y/
目录中查找?