如何以编程方式确定导入给定 Python 模块所需的最小文件集?

问题描述 投票:0回答:1

我正在开发一个 Python3 脚本,该脚本使用 pyobjc 通过

NSPasteboard
访问 macOS 剪贴板。为此,需要进行以下导入:

from AppKit import NSPasteboard

为了使我的发行版保持最小大小(完整的 pyobjc 9.2 包为 30MB),我想找出使导入成功所需的最小文件集。通过反复试验(使用 REPL 并尝试导入

NSPasteboard
,查看堆栈跟踪错误并一一添加缺少的模块),我确定这是:

./lib
├── AppKit
├── CoreFoundation
├── Foundation
├── objc
└── PyObjCTools

相比之下,这套瘦身套装只有7MB

我的问题是:是否有更实用的方法来确定这一点?使用 importlib 或类似的东西?

python macos python-import appkit pyobjc
1个回答
0
投票

这些命令给出最少的导入:

python -v -c "from AppKit import NSPasteboard" |&\
    perl -ne 'print "$1\n" if (/^import '"'"'([^'"'"'.]+)/)' | sort -u
© www.soinside.com 2019 - 2024. All rights reserved.