在OS X中创建软件包安装程序 - 安装Python、NumPy及其他依赖项

7 投票
4 回答
2402 浏览
提问于 2025-04-17 12:38

我想创建一个适用于Mac OS X的本地安装包,制作这个包其实不是问题,真正的问题在于需要安装的依赖项;我需要安装Python、NumPy和Matplotlib(只有在这些软件的所需版本尚未安装时才需要安装)。

我听说关于Package Maker这个应用的评价很差,我也查了一些资料,甚至找到了一些不错的教程,虽然这些教程有点过时。作为参考,这里有苹果的官方指南

我想我需要使用这三个项目提供的未编译源代码。

如果能看到用于创建官方Python安装程序的PackageMaker文件,那对我会很有帮助。如果有这样的文件,请告诉我在哪里可以找到。

总之:

做这个的最佳方法是什么?使用PackageMaker来实现这个目的是不是太傻了?还有其他能帮助我的资料吗?

附加问题:

测试我的安装程序最简单的方法是什么?

4 个回答

1

也许你可以使用 macports 的 二进制包 或者 二进制归档?还有可能用到 fabric 或 puppetPuppet 在 OSX 上

macports 使用起来和 apt-get 一样简单,它会自动处理所有的依赖关系。默认情况下,macports 会安装到 /opt/local 目录,这样就不会和苹果自带的软件冲突。默认是从源代码编译安装。有些软件包比较大,依赖的东西也很多,所以编译会花费不少时间,并且会占用机器的资源。如果你做一个二进制归档,只需要根据机器的架构和 OSX 版本编译一次。然后你只需要安装 macports,并设置一个共享目录放二进制归档。通过 fabric 或 puppet,你可以自动化构建和分发。

如果你在不久的将来发现需要 pytable 或 numexpr,安装起来就简单多了:只需运行 sudo port install py26-tables。如果其他人也需要这个,你可以把它做成二进制归档,放到共享目录里。

2

类似于 /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
4

我猜你想安装你提到的那些包,是因为你在开发一个Python应用程序。你有没有看过PyInstaller?它的功能是把Python程序转换成独立的可执行文件,适用于Windows、Linux、Mac OS X、Solaris和AIX等系统,这样你就不用担心目标系统上安装了什么。

如果你使用PyInstaller,额外的步骤就简单多了。只需把生成的可执行文件复制到其他机器上,然后直接运行测试一下就可以了。

撰写回答