【问题标题】:Recommendations for Python development on a Mac?在 Mac 上进行 Python 开发的建议?
【发布时间】:2011-04-05 00:45:14
【问题描述】:

大约一个月前,我购买了一台低端 MacBook,终于开始为 Python 配置它。到目前为止,我已经在 Windows 中完成了大部分 Python 工作,并且发现 OS X 的选择有点令人生畏。看起来至少有五个选项可用于 Python 开发:

  • “库存”Apple Python
  • MacPython
  • 芬克
  • Mac 端口
  • 从源头滚动你自己的

我仍然主要针对 2.5 进行开发,因此从功能的角度来看,现有的 Python 还不错。我想知道的是:我为什么要选择一个而不是另一个?

更新: 为了澄清,我正在寻找各种选项的讨论,而不是文档的链接。我已将此标记为社区 Wiki 问题,因为我觉得没有“正确”的答案。感谢所有已经发表评论的人的见解。

【问题讨论】:

  • 您希望对各种选项进行什么样的讨论?请澄清你的问题。 wiki.python.org/moin/MacPython/Leopard 的文件有什么问题?您还希望看到哪些不在本文档中的内容?
  • 您链接到的页面有一个选项:将 IDLE 从 MacPython 添加到 Apple 的股票 Python 脚本。我希望了解各种发行版的更多优缺点,包括个人经历和 SO 用户选择特定发行版的原因。
  • 我认为您的意思是链接到wiki.python.org/moin/MacPython/PythonDistributionsForMac,但是该页面非常简洁,并且提供了许多模糊的术语,例如“太复杂”和“太多......包”。另外,该页面没有列出替代方案的许多优点。我想知道有没有。

标签: python macos


【解决方案1】:

我看到使用 Mac OS X 附带的“普通”Python 的一个优势是,它使部署到其他 Mac 变得轻而易举。我不知道您的部署方案是什么,但对我来说这很重要。我的代码必须在工作中的任意数量的 Mac 上运行,我尽量减少在所有这些系统上运行我的代码所需的工作量。

【讨论】:

  • 避免使用 fink - 它会安装一些您可能不满意的额外内容。使用这个:wiki.python.org/moin/MacPython/Leopard
  • 假设你可以容忍你的 python 被同样破坏(我在过去两天在 SO 上指出了三个人们在现实世界中遇到的例子)和 old i> 在所有 Mac 上,这是一个有效的观点。
  • 正如我所暗示的,这完全取决于您的部署要求。我不能指望这里的所有机器都更新到 Python 2.6 或其他一些非标准配置。但这只是我参与这个项目。
【解决方案2】:

我强烈建议使用MacPortsPorticus 来管理您的Python 安装。构建所有东西都需要一些时间,但优点是无论您自己构建什么都将针对相同的库构建,因此如果您希望 Python 的东西正常工作,您就不必担心静态链接的共享对象等。使用 Apache、PostgreSQL 等。

如果你选择这种方式,记得安装python_select 端口并使用它让你的系统使用从MacPorts安装的Python。

作为一个额外的好处,MacPorts 为大多数主流 Python 鸡蛋提供了软件包,所以如果你应该能够让 MacPorts 让你了解所有这些东西的最新版本:)

【讨论】:

  • 加上真正容易安装 PIL 的优势(我发现唯一的工作)。
  • (这是一个老问题,我还是把我的两分钱放在这里)。我强烈建议反对在 mac 上使用 macports for python,除非你没有用 python 做任何 GUI 东西,或者使用任何不寻常的库。
  • 基本上,如果你使用基于 macports 的 python,安装任何自定义 python 包是非常困难的,如果你这样做,它可能会让 macports 感到困惑(事实上,macports 常见问题解答明确说明了唯一的方法你应该通过macports安装额外的python包,你不应该以任何其他方式安装它们)。
  • 其次,如果您使用 python 进行 GUI 工作,通过 macports 安装的所有库都将使用 X11,而不是本机小部件。因此,它们几乎都看起来很难看,并且不适合其他苹果应用程序。
【解决方案3】:

这里有一些有用的信息可以帮助您入门。 http://www.python.org/download/mac/

【讨论】:

    【解决方案4】:

    取决于您使用 python 的目的。如果您使用 MacOS 功能和 PyObjC 之类的东西,您可能最好使用 MacPython 或 Apple 提供的 python。

    我在我的 Mac 上使用 Python 主要用于开发服务器端应用程序,这些应用程序稍后将在 FreeBSD 和 Linux 机器上运行。为此,我已经使用 fink python 几年了,从 MacPorts python 开始。使用 mac 端口,添加所需的 c 模块(如数据库驱动程序等)很简单。保留两个 python 版本(在我的例子中是 2.5 和 2.6)也很容易。

    我使用“编译你自己的”python 来测试 3.0 之前的 python,但通常我发现如果手动管理对 c 模块的依赖关系会很痛苦。

    感谢 easy_install,对于上述所有选项,安装纯 python 模块既快速又简单。

    我从来都不是一个非常喜欢 IDE 的人。对于开发,我使用 MacPorts 安装的命令行颠覆,Textmate 和偶尔的Expandrive 直接访问服务器上的文件。我个人非常依赖Bicyclerepairman for Textmade 来处理我的重构需求。

    其他人似乎对Eclipse & Pydev很满意。

    【讨论】:

      【解决方案5】:

      Enthought 的 EPD 怎么样?是的,它很大,但它是一个框架构建,包含 wxPython、vtk、numpy、scipy 和 ipython 等内置功能。

      【讨论】:

        【解决方案6】:

        我建议使用 Python 虚拟环境,尤其是如果您使用 Timecapsule,因为 Timecapsule 会备份所有内容,除了您添加到 Python 的模块!

        【讨论】:

        • 我喜欢在虚拟环境中开发。可以轻松添加可能会干扰其他人的软件包。清理基础系统。
        • 我同意特别是。因为随附的 python 还附带了一些可能与您需要的较新版本发生冲突的插件库(我有这个与 zope.interface)。 virtualenv 和您自己的 python 安装可以防止这种情况发生。
        【解决方案7】:

        基于人们在 Leopard python 中遇到的错误和遗漏的数量(就在这里!),我不能推荐那个版本。例如,参见:

        我会选择 MacPorts

        它不会消除 Apple 提供的现有 python,因为它默认安装在 /opt/local/bin 中(很好用),而且它很容易下载和安装额外的 python 模块(甚至是你需要编译的二进制模块! )。我使用Porticus GUI 来维护我的 MacPorts 安装包列表,包括 python。

        【讨论】:

          【解决方案8】:

          在我的 Windows 环境中,我使用 Eclipse 和 PyDev,它们可以很好地协同工作,即使它有点稀疏。显然Mac也可以使用完全相同的环境,所以我建议下载Eclipse并使用内部更新软件功能使用URLhttp://pydev.sourceforge.net/updates/更新PyDev。要进一步了解 PyDev,请查看 here

          【讨论】:

            【解决方案9】:

            Apple 提供的 python 已经很老了——我的 Tiger 安装的是 2.3.5。这对你来说可能不是问题,但你会错过很多。此外,Apple 可能会对其进行更新。我不确定从 2.3.5 迁移到(比如说)2.4 是否会导致代码中断,但我想这是可能的。最近发生在 perl 人身上:http://developers.slashdot.org/article.pl?sid=09/02/18/1435227

            Macpython 是一个框架构建(我相信苹果也是如此)。老实说,我不确定这到底是什么意思,但它是某些模块的先决条件,尤其是 wxPython。如果你从 macports 或 fink 获取 python,你将无法运行 wxPython(除非你通过 X11 运行它)。

            【讨论】:

            • 关于 wxPython 的好点,我没有考虑过。 Apple 最近改进了对 Python 的支持,在 Leopard 中安装了 2.5.2,但 Perl 问题也是一个值得提出的好点。
            【解决方案10】:

            猜猜这里的每个答案都忘记了什么...ActivePython

            无需编译,即使是numpylxmlpyqtthousands of others等第三方模块。

            【讨论】:

              【解决方案11】:

              我推荐python(任何python?)加上ipython shell。我最近使用 MacPython 的经验是 MacPython 2.5,我发现 IDLE 用作编辑器令人沮丧。它不是很有特色,而且滚动大量输出非常慢。

              【讨论】:

                猜你喜欢
                • 2023-03-19
                • 2011-06-20
                • 1970-01-01
                • 2011-05-09
                • 2019-06-10
                • 1970-01-01
                • 2022-01-20
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多