Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在OS X中创建软件包安装程序-安装Python、NumPy和其他依赖项_Python_Macos_Numpy_Matplotlib_Packagemaker - Fatal编程技术网

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

在OS X中创建软件包安装程序-安装Python、NumPy和其他依赖项,python,macos,numpy,matplotlib,packagemaker,Python,Macos,Numpy,Matplotlib,Packagemaker,我想创建一个原生Mac OS X软件包安装程序,软件包的创建并不是真正的问题,真正的问题是必须安装的依赖项;我需要安装Python、NumPy和Matplotlib(仅当尚未安装所需版本时) 我听说过关于Package Maker应用程序的一些非常糟糕的事情,我读了一些书,甚至已经找到了一本不错的教程,尽管它相当不错。作为参考,这里是苹果的参考 我想我必须使用这三个项目中每个项目提供的未编译源代码 查看用于创建官方Python安装程序的PackageMaker文件真的很有帮助,如果有这样的文件,

我想创建一个原生Mac OS X软件包安装程序,软件包的创建并不是真正的问题,真正的问题是必须安装的依赖项;我需要安装Python、NumPy和Matplotlib(仅当尚未安装所需版本时)

我听说过关于Package Maker应用程序的一些非常糟糕的事情,我读了一些书,甚至已经找到了一本不错的教程,尽管它相当不错。作为参考,这里是苹果的参考

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

查看用于创建官方Python安装程序的PackageMaker文件真的很有帮助,如果有这样的文件,请指向它

无论如何:

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

额外:


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

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


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

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

也许你可以使用macports或? 也许吧。

Macports非常简单,易于使用,并且能够处理所有依赖项。默认情况下,macports安装到/opt/local,因此安装不会干扰apple的安装。默认是从源代码编译。有些软件包很大,并且有很多依赖项,因此编译需要大量时间和机器上的所有资源。如果你制作一个二进制档案,你只需要编译一个机器的ArcithArchitecture/osx版本。然后,您只需要安装macports并设置一个具有二进制存档的共享。使用fabric或puppet,您可以自动化构建和分发

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

虽然这是一个解决方案(我不是100%确定),但对于开发,我们的很多人都必须安装所有东西,而且他们通常会浪费大量时间安装所有东西,这就是为什么我需要创建一个安装程序,如果有一些代码需要编辑或删除,他们可以。这是一个分销解决方案,而不是开发解决方案。谢谢你的建议,Michael。有没有一个Python包可以为macOS创建通用的
pkg
安装程序?OS X已经有Python了,所以看看
virtualenv
+
pip install
组合,它用
shell脚本
包装。Mac OS X附带的Python不能与Matplotlib一起使用,您必须从Python.org重新安装。无论如何,我将检查这两个选项。我提到了这一点,因为如果默认情况下您已经有了任何python,那么您可以轻松地编写
install.sh
来安装virtualenv、pip等等。哦,等等。即使没有默认python,也可以这样做。在Lion中为默认python安装numpy、scipy和matplotlib是可能的,但并不容易。这个周末我做了,但是我认为你把它们都打包在一起是明智的。是的,我讨厌看到一个用户完全困惑,无法安装软件。特别针对那些没有UNIX背景的用户:(您是否建议将此脚本添加到Package Installer项目中?否则,我希望避免在安装过程中与终端进行任何交互。这就是我希望使用Package Installer的原因。谢谢!旁注:通常是依赖性软件包(pip可安装)在
requirement.txt
类似文件中列出,并添加到版本控制(git)中,任何安装程序脚本都必须具有
pip install-r/requirement.txt
。为什么这些解决方案比Mac的软件包安装程序更好?我愿意接受新的解决方案。