python - 尽管修改了 sys.path 标准库包仍然可以导入
问题描述
假设我想让标准库中的包不可导入。所以“datetime”、“collections”等在运行时不应该是可导入的import datetime
。
我没有这方面的用例,但实现这一点将帮助我了解 Python 是如何解析包的。
我试过这样做:
import sys
sys.path = []
sys.prefix = ''
sys.exec_prefix = ''
但尽管如此,当我运行时import datetime
,找到了包(它位于 Ubuntu 上的 /usr/lib/python3.6 目录中)。
我还尝试使用 Python 启动python3.6 -S -s
以避免自动加载 site.py,但这也没有帮助。
我的猜测是 Ubuntu 提供的 Python 解释器的路径是/usr/lib/pythonX.Y
硬编码的,但我无法通过广泛的互联网搜索来确认这一点。
那么 Python 是如何知道它应该在/usr/lib/pythonX.Y/
目录中查找的呢?
解决方案
推荐阅读
- php - Num rows 始终为 0,带有准备好的语句
- reactjs - “dagre”实用程序是强制性依赖项
- reactjs - 如何在状态更改时更新元素的样式
- flutter - 切换小部件 - 为 activeThumbImage 属性使用图标(它是 ImageProvider 类型)
- uitableview - NSFetchedResultsController 的 tableView 中的不同部分与 Core Data 记录中的不同
- python - 如何在字符串python中获取具体参数
- css - BS Header 右对齐
- cmake - 安装不再存在的文件
- javascript - 如何将对象传递给 JavaScript 中的动画函数?
- python - 循环遍历动态列表