在 Mac OS X 虚拟环境中安装 Python,其中包含我可以包含到 Xcode 中的框架?

Posted

技术标签:

【中文标题】在 Mac OS X 虚拟环境中安装 Python,其中包含我可以包含到 Xcode 中的框架?【英文标题】:Python installation in Mac OS X virtual environment that includes a framework that I can include into Xcode? 【发布时间】:2013-07-19 13:04:42 【问题描述】:

我喜欢将 Python 与 numpy、scipy 和其他一些软件包一起使用。我是一个绝对的 Python 初学者,在 Mac OS X 下安装时遇到了一些问题。

我正在按照以下两个教程安装 python:1 和 2。

这里,HomeBrew 用于安装 Python(带有 pip)和 virtualenv。我对什么更好没有意见,MacPorts、HomeBrew、Fink...我只是发现本教程激发了信心。

如果我理解正确的话,我不应该接触的 OS X 系统 Python 位于 /System/Library/Frameworks/Python.Framework 下。而且我不能在 Xcode 中使用这个,因为它没有我想要的包。 HomeBrew Python 将安装在 /usr/local/ 中的某个位置。我在那里找到了一个框架,但作为系统框架,它没有额外的包。本教程解释说,最好只在虚拟环境中安装额外的包,这通过 pip 完成。但我在那里找不到框架。

所以我的问题是:如何在包含可以包含到 Xcode 中的框架的虚拟环境中安装 Python?

【问题讨论】:

【参考方案1】:
    Apple Python 功能正常,正常的站点包文件夹是 /Library/Python/2.7/site-packages(而不是 /System/Library/Frameworks/Python.framework/版本/2.7/lib/python2.7/site-packages)。您可以毫无问题地使用它。 我从来没有遇到任何问题来安装我想要作为框架的所有模块(numpy、scipy、matplotlib、pandas、shapely 和其他...),或者使用 pip 或 easy_install,包括 virtualenv(只需将它们安装在常规方式)或创建虚拟环境。 当您安装框架模块时,它被放置在普通的站点包文件夹中。 唯一的问题可能是“旧”Python 版本(对我来说不是问题,使用 2.6.x、2.7.x 和 3.3.x 版本)

但如果您愿意,您可以安装其他版本的 Python(64 位,而不是 32 位!):

a) Apple 规定的方式:作为框架

Python.org 的官方版本安装在 /Library/Frameworks/Python.framework 中,site-packages 文件夹位于 /Library/Frameworks/Python.framework/Versions/2.7/ lib/python2.7/site-packages 同样适用于 Python 的 Enthought 科学版本(预装了许多模块的科学发行版、numpy、scipy、matplotlib...), (您也可以将 Homebrew Python 版本安装为框架,见下文)

您必须在 /usr/bin 中更改 Python 可执行文件的 PATH(通常,这是通过符号链接或在 /Users/me/.bash_profile 文件)。

安装在 /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages 中的模块不会干扰安装在 /Library/Python 中的模块/2.7/site-packages 如果您使用适当的 Python 可执行文件,反之亦然。

b) 包管理系统方式

MacPorts 在文件夹 /opt/ 中安装自己的 Python 版本;

sudo 端口 -v 安装 python27

Fink 在 /sw/ 文件夹中安装自己的 Python 版本;

fink 安装 Python27

Homebrew 在 /usr/local/Cellar 中安装 Python,并在 /usr/local/bin 中使用符号链接。

brew安装python 或 brew install python --framework

要使用它们,您必须将 /sw/bin、/sw/lib/ 或 /opt/bin、/opt/lib/ 添加到 PATH 并更改Python 可执行文件

对我来说,Fink 和 MacPorts 的主要问题是它们没有考虑已安装的内容,而是将所有内容安装在各自的文件夹中,这可能会在库路径的管理中产生真正的问题。 Homebrew 解决方案“更干净”(在 /usr/local 中)并且基于现有库(如果它们是最新的),否则它会安装自己的库版本

c) “自主”方式

完美的解决方案是Anaconda(另一个预装了许多模块的科学发行版,), 干净地安装到单个目录中(您想要的位置为 /Users/me/anaconda) 不需要 root 权限 不会影响您系统上的其他 Python 安装,或干扰 OS X 框架 仅通过设置 $PATH 或在 /Users/me/.bash_profile 中创建别名来切换到/从 Anaconda 别名 anaconda='/Users/me/anaconda/bin/python' 别名 anaconda3='/Users/me/anaconda/envs/py33/bin/python3' 您可以安装从 2.6.x 到 3.3.x 的 Python 版本 创新的 Python 包和环境管理器,名为 conda,但您可以毫无问题地使用 pip 或 easy_install 现在对我来说,这是安装虚拟环境的最佳解决方案(如 /Users/me/anaconda/envs/py33

d) “硬”的方式

您可以以经典形式(在 /usr/ 中)或作为框架编译您自己的 Python 版本。这需要时间,但并不难。

所以你的问题:

如何在包含可包含在 Xcode 中的框架的虚拟环境中安装 Python?

除非您是 Unix 专家(路径管理),否则您必须使用 Apple 推荐的解决方案,即框架分发(包括 Apple Python)

【讨论】:

感谢您的努力。我按照问题中两个链接中提供的步骤通过 HomeBrew 正确安装了所有内容。使用these steps,我可以使用我在虚拟环境中安装的所有包编译 Python 脚本。没有错误。但考虑到我喜欢做类似here 描述的事情。我需要将一个框架导入 Xcode,但在我的虚拟环境中找不到。没看懂你的帖子有没有? 我从不使用这个解决方案。我从终端使用 Python 没有问题。为了创建一个虚拟环境,我使用 Python 命令 virtualenv your project

以上是关于在 Mac OS X 虚拟环境中安装 Python,其中包含我可以包含到 Xcode 中的框架?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 mac os x (10.9) 上的 python 中安装 libgpuarray 和 clBLAS?

win10 Vmware12装mac os X10.11虚拟机教程

使用 GCC 4 在 Mac OS X 中安装 gammu 时出现 LONG_BIT 错误

Mac OS下使用pyenv管理Python版本

如何在VirtualBox中安装MAC OS系统

在Mac OS X 10.13.2中安装nltk 和numpy