在OS X中创建软件包安装程序 - 安装Python、NumPy及其他依赖项
我想创建一个适用于Mac OS X的本地安装包,制作这个包其实不是问题,真正的问题在于需要安装的依赖项;我需要安装Python、NumPy和Matplotlib(只有在这些软件的所需版本尚未安装时才需要安装)。
我听说关于Package Maker这个应用的评价很差,我也查了一些资料,甚至找到了一些不错的教程,虽然这些教程有点过时。作为参考,这里有苹果的官方指南。
我想我需要使用这三个项目提供的未编译源代码。
如果能看到用于创建官方Python安装程序的PackageMaker文件,那对我会很有帮助。如果有这样的文件,请告诉我在哪里可以找到。
总之:
做这个的最佳方法是什么?使用PackageMaker来实现这个目的是不是太傻了?还有其他能帮助我的资料吗?
附加问题:
测试我的安装程序最简单的方法是什么?
4 个回答
也许你可以使用 macports 的 二进制包 或者 二进制归档?还有可能用到 fabric 或 puppet。Puppet 在 OSX 上。
macports 使用起来和 apt-get 一样简单,它会自动处理所有的依赖关系。默认情况下,macports 会安装到 /opt/local 目录,这样就不会和苹果自带的软件冲突。默认是从源代码编译安装。有些软件包比较大,依赖的东西也很多,所以编译会花费不少时间,并且会占用机器的资源。如果你做一个二进制归档,只需要根据机器的架构和 OSX 版本编译一次。然后你只需要安装 macports,并设置一个共享目录放二进制归档。通过 fabric 或 puppet,你可以自动化构建和分发。
如果你在不久的将来发现需要 pytable 或 numexpr,安装起来就简单多了:只需运行 sudo port install py26-tables。如果其他人也需要这个,你可以把它做成二进制归档,放到共享目录里。
类似于 /tmp/install.sh
这样的内容:
cd ~
curl -C - -O http://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.7.tar.gz
tar -xzf virtualenv-1.7.tar.gz
cd ./virtualenv-1.7
python setup.py install
cd ~
rm virtualenv-1.7.tar.gz
rm -rd ./virtualenv-1.7
virtualenv myenvfolder
source myenvfolder/bin/activate
easy_install pip
pip install NumPy
pip install Matplotlib
然后:
chmod +x /tmp/install.sh;
/tmp/install.sh
我猜你想安装你提到的那些包,是因为你在开发一个Python应用程序。你有没有看过PyInstaller?它的功能是把Python程序转换成独立的可执行文件,适用于Windows、Linux、Mac OS X、Solaris和AIX等系统,这样你就不用担心目标系统上安装了什么。
如果你使用PyInstaller,额外的步骤就简单多了。只需把生成的可执行文件复制到其他机器上,然后直接运行测试一下就可以了。