【问题标题】:Creating package installer in OS X - install Python, NumPy and other dependencies在 OS X 中创建包安装程序 - 安装 Python、NumPy 和其他依赖项
【发布时间】:2012-03-01 15:00:03
【问题描述】:

我想创建一个本地 Mac OS X 包安装程序,包的创建不是问题,真正的问题是必须安装的依赖项;我需要安装 Python、NumPy 和 Matplotlib(仅在尚未安装所需版本的情况下)。

我听说过关于 Package Maker 应用程序的坏消息,我已经阅读了一些内容,甚至已经找到了一个不错的教程,尽管它相当 outdated。作为参考,这里是苹果的参考guide

我想我必须使用这三个项目各自提供的未编译源代码。

查看用于创建官方 Python 安装程序的 PackageMaker 文件对我真的很有帮助,如果该文件在某处可用,请指点我。

无论如何:

最好的方法是什么?为此目的使用 PackageMaker 是愚蠢的吗?还有其他文献对我有帮助吗?

额外:

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

【问题讨论】:

  • OS X 已经有 python,所以看看 virtualenv+pip installshell script 包裹的组合。
  • Mac OS X 附带的 Python 不适用于 Matplotlib,您必须从 Python.org 进行全新安装。无论如何,我会检查这两个选项。
  • 我提到了,因为如果你已经默认有python,你可以很容易地写install.sh来安装virtualenv、pip等。等一下。即使没有默认的 python,你也可以这样做。
  • 在 Lion 中为默认 Python 安装 numpy、scipy 和 matplotlib 是可能的,但并不容易。我这个周末做了,但我认为你最好把它们打包在一起。
  • 是的,我讨厌看到用户一头雾水,无法安装软件。特别适合没有UNIX背景的用户或人员:(

标签: python macos numpy matplotlib packagemaker


【解决方案1】:

我假设您要安装您提到的软件包,因为您正在开发 Python 应用程序。你看过PyInstaller吗?它“将 Python 程序转换(打包)为独立的可执行文件,在 Windows、Linux、Mac OS X、Solaris 和 AIX 下”,因此您不必担心目标系统上安装了什么。

如果您使用 PyInstaller,“额外”将很容易。只需将生成的可执行文件复制到任何其他机器并通过执行它来测试它。

【讨论】:

  • 虽然这是一个解决方案(我不是 100% 肯定),但是对于开发我们很多人必须安装所有东西,而且他们通常会浪费大量时间安装所有东西,这就是为什么我需要创建一个安装程序,如果有一些代码需要编辑或删除,他们可以。这是分发解决方案,而不是开发解决方案。谢谢你的建议迈克尔。
  • 是否有 Python 包可以为 macOS 创建通用的pkg 安装程序?
【解决方案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

【讨论】:

  • 您是否建议将此脚本添加到 Package Installer 项目中?否则,我想避免与终端进行任何交互以进行安装。这就是我想使用 Package Installer 的原因。谢谢!
  • 旁注:通常依赖包(pip 可安装)列在requirement.txt 类似文件中并添加到版本控制(git)中,任何安装程序脚本都必须有pip install -r <path_to>/requirement.txt。跨度>
【解决方案3】:

也许您可以使用 macports binary-packagesbinary-archives? 也许fabric or puppetPuppet on OSX.

Macports 使用起来就像 apt-get 一样简单,并且可以处理所有依赖项。默认情况下,macports 安装到 /opt/local,因此安装不会干扰苹果安装。默认是从源代码编译。有些包很大并且有很多依赖项,所以编译需要很多时间和机器上的所有资源。如果你制作一个二进制存档,你只需要编译那些 pr machine arcithecture/osx-version。然后你只需要安装 macports 并设置一个与 binary-archives 的共享。使用 Fabric 或 Puppet,您可以自动构建和分发。

那么如果你在不久的将来发现你需要 pytable 或 numexpr 它就像:sudo port install py26-tables 如果其他人需要它,您可以对其进行二进制存档并将其放在共享中。

【讨论】:

  • 为什么这些解决方案比 Mac 的 Package Installer 更好?我愿意接受新的解决方案。
【解决方案4】:

要安装 Python 的最新版本,您可以转到 here,您可以使用以下命令直接在终端中安装 NumPy 和 matplotlib:

pip3 install matplotlib

pip3 install numpy

【讨论】:

  • 这没有回答问题,这不是他们要问的。
猜你喜欢
  • 2014-07-17
  • 1970-01-01
  • 2014-05-19
  • 1970-01-01
  • 2012-05-19
  • 1970-01-01
  • 2014-05-03
  • 2015-05-23
  • 1970-01-01
相关资源
最近更新 更多