我正在开发一个 Python3 脚本,该脚本使用 pyobjc 通过
NSPasteboard
访问 macOS 剪贴板。为此,需要进行以下导入:
from AppKit import NSPasteboard
为了使我的发行版保持最小大小(完整的 pyobjc 9.2 包为 30MB),我想找出使导入成功所需的最小文件集。通过反复试验(使用 REPL 并尝试导入
NSPasteboard
,查看堆栈跟踪错误并一一添加缺少的模块),我确定这是:
./lib
├── AppKit
├── CoreFoundation
├── Foundation
├── objc
└── PyObjCTools
相比之下,这套瘦身套装只有7MB。
我的问题是:是否有更实用的方法来确定这一点?使用 importlib 或类似的东西?
这些命令给出最少的导入:
python -v -c "from AppKit import NSPasteboard" |&\
perl -ne 'print "$1\n" if (/^import '"'"'([^'"'"'.]+)/)' | sort -u