识别Python脚本使用的特定模块文件

识别Python脚本使用的特定模块文件,python,numpy,matplotlib,py2app,Python,Numpy,Matplotlib,Py2app,我有几个关于Python和将脚本打包到可安装应用程序的一般性问题。我编写了一个使用matplotlib、numpy和scipy的脚本,其大小总共接近160MB。该脚本相对简单,并且很少使用三个库中的任何一个库的功能。然而,当使用py2app将脚本打包到可安装的应用程序中时,生成的应用程序的文件大小约为250 MB(包括应用程序未使用的框架) 为了减小文件的大小,我进入了应用程序的包内容(在Mac上),手动从库中删除了模块,以及我猜应用程序没有使用的未使用的框架。这使文件大小降低到90 MB左右,

我有几个关于Python和将脚本打包到可安装应用程序的一般性问题。我编写了一个使用
matplotlib
numpy
scipy
的脚本,其大小总共接近160MB。该脚本相对简单,并且很少使用三个库中的任何一个库的功能。然而,当使用
py2app
将脚本打包到可安装的应用程序中时,生成的应用程序的文件大小约为250 MB(包括应用程序未使用的框架)

为了减小文件的大小,我进入了应用程序的包内容(在Mac上),手动从库中删除了模块,以及我猜应用程序没有使用的未使用的框架。这使文件大小降低到90 MB左右,而不会丢失任何功能

考虑到这一点,这里有几个问题:

  • 有没有办法确定Python脚本实际使用哪些模块中的哪些特定文件
  • 有没有办法确定生成的应用程序文件正在使用哪些框架
  • 是否有一种优雅的解决方案可以自动从应用程序包内容中删除所有未使用的文件和框架(如对问题1和问题2的回答所示),以便在不丢失功能的情况下大幅减少文件大小

  • 谢谢。

    为什么大小会有问题?所有文件都保存到一个空间有限的本地服务器上,因此,如果有任何方法可以最小化我的占用空间(整个公司都使用此服务器),那将是理想的。实现这一点的简单方法是使用
    virtualenv
    在开发阶段只安装您需要的特定软件包,但就我所知,你不能选择那些软件包的特定部分。