virutalenv是一个很棒的工具,对于在大多数平台上管理多个Python实例非常有用。但是,在Mac OS
X上,事情变得更加复杂,因为使用框架构建使遇到相同主版本Python的多个实例变得很普遍。我建议您先深入了解并熟悉如何在Mac OS
X上管理框架安装
virtualenv。
“/opt/local/Library/frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/
-SRSLY?”
是的,这是Python Mac OS X框架内部版本的默认位置。在Mac OS X上,大多数Python发行商都使用 框架构建 ,每个 框架
通常使用不同的根目录,因为这样可以更轻松地支持多个版本,并且可以将为特定Python实例安装的所有站点包都放在一个地方。
对于Mac OS X 10.6,Apple提供了Python
2.6(植根于
/System/Library/frameworks/Python.framework且符号链接到
/usr/bin/python2.6)以及Python
2.5(与Mac OS X 10.5兼容-就是这样
/usr/bin/python2.5)。python.org Mac OS
X安装程序安装到
/Library/frameworks/Python.framework。MacPorts使用
/opt/local/Library/frameworks/Python.framework。
框架包括
bin目录(位于
../Versions/x.x/bin框架中);这通常是安装程序包脚本的默认位置。这也是放置到解释器二进制文件的符号链接的地方。
这是一个安装了多个Python版本的python.org风格的框架:
$ cd /Library/frameworks/Python.framework/Versions/$ ls -ltotal 8drwxrwxr-x 8 root admin 340 Dec 23 2008 2.5/drwxrwxr-x 8 root admin 340 Aug 10 21:42 2.6/drwxrwxr-x 8 root admin 340 Jul 3 12:24 2.7/drwxrwxr-x 7 root admin 306 Mar 23 17:42 3.1/drwxrwxr-x 7 root admin 306 Aug 10 22:14 3.2/lrwxr-xr-x 1 root admin 3 Aug 10 21:47 Current@ -> 2.6$ cd 2.6$ ls -ltotal 7776lrwxr-xr-x 1 root admin 17 Aug 10 21:47 Headers@ -> include/python2.6drwxrwxr-x 3 root admin 102 Aug 10 21:42 Mac/-r-xrwxr-x 1 root admin 3973552 Aug 10 21:41 Python*drwxrwxr-x 4 root admin 170 Aug 10 21:48 Resources/drwxrwxr-x 2 root admin 578 Aug 12 15:19 bin/drwxrwxr-x 3 root admin 102 Aug 10 21:42 include/drwxrwxr-x 3 root admin 646 Aug 10 21:43 lib/drwxrwxr-x 3 root admin 102 Aug 10 21:41 share/$ ls -l bintotal 264-rwxrwxr-x 1 root admin 150 Aug 10 21:41 2to3*-rwxr-xr-x 1 nad admin 360 Aug 12 15:19 easy_install*-rwxr-xr-x 1 nad admin 368 Aug 12 15:19 easy_install-2.6*lrwxr-xr-x 1 root admin 7 Aug 10 21:47 idle@ -> idle2.6-rwxrwxr-x 1 root admin 138 Aug 10 21:41 idle2.6*lrwxr-xr-x 1 root admin 8 Aug 10 21:47 pydoc@ -> pydoc2.6-rwxrwxr-x 1 root admin 123 Aug 10 21:41 pydoc2.6*lrwxr-xr-x 1 root admin 9 Aug 10 21:47 python@ -> python2.6lrwxr-xr-x 1 root admin 16 Aug 10 21:47 python-config@ -> python2.6-config-rwxrwxr-x 1 root admin 29584 Aug 10 21:43 python2.6*-rwxrwxr-x 1 root admin 1463 Aug 10 21:42 python2.6-config*lrwxr-xr-x 1 root admin 10 Aug 10 21:47 pythonw@ -> pythonw2.6-rwxrwxr-x 1 root admin 29584 Aug 10 21:43 pythonw2.6*lrwxr-xr-x 1 root admin 11 Aug 10 21:47 smtpd.py@ -> smtpd2.6.py-rwxrwxr-x 1 root admin 18272 Aug 10 21:41 smtpd2.6.py*
这是MacPorts,
bin其中包括许多其他站点包:
$ cd /opt/local/Library/frameworks/Python.framework/Versions/2.6$ ls -l bintotal 952-rwxr-xr-x 2 root wheel 160 Jul 15 01:56 2to3*-rwxr-xr-x 2 root wheel 1541 Jun 8 19:59 apirst2html.py*-rwxr-xr-x 2 root wheel 363 Oct 5 2009 bdist_mpkg*[...]-rwxr-xr-x 2 root wheel 211 Jun 2 12:45 django-admin.py*-rwxr-xr-x 2 root wheel 410 Jul 15 17:30 easy_install*-rwxr-xr-x 2 root wheel 418 Jul 15 17:30 easy_install-2.6*[...]-rwxr-xr-x 2 root wheel 368 Jun 24 02:00 pip*-rwxr-xr-x 1 root wheel 342 Sep 18 2009 pkginfo*[...]lrwxr-xr-x 1 root wheel 9 Jul 15 01:58 python@ -> python2.6lrwxr-xr-x 1 root wheel 16 Jul 15 01:58 python-config@ -> python2.6-config-rwxr-xr-x 2 root wheel 24932 Jul 15 01:57 python2.6*-rwxr-xr-x 2 root wheel 1473 Jul 15 01:57 python2.6-config*[...]
如果您使用python.org安装程序或MacPorts安装2.7或3.1
Python,它们全部植根于
/Library/frameworks或,
/opt/local/Library/frameworks并且可以与其他版本愉快地共存。要成功使用框架安装,您需要管理shell
PATH。特别是,您应确保
bin要使用的Python的框架目录位于上
PATH。因此,对于MacPorts,类似以下内容
~/.bash_profile:
export PATH="/opt/local/Library/frameworks/Python.framework/Versions/2.6/bin:/opt/local/bin:$PATH
或python.org安装程序:
export PATH="/Library/frameworks/Python.framework/Versions/2.6/bin:$PATH
此外,一般需要安装自己喜欢的Python包管理加载项(如独立的版本
pip或
easy_install从命令
Distribute或
setuptools)为您使用的每个Python实例。每个都安装到默认脚本目录(即框架
bin目录)中。MacPorts在安装其版本的软件包(
sudoport install py26-pip或
sudo port installpy31-distribute)时会自动进行处理。请注意,Apple为Python提供了一组
easy_install链接
/usr/bin,它们将软件包安装到
/Library/Python。您需要确保对您的Python实例使用
easy_install或
pip。确保实例的框架
bin目录位于
PATH确保的第一位。
请注意,如果您使用MacPorts,则 可以
使用其
python_select命令来管理所指向的Python实例
/opt/local/bin/python。然后,如果
/opt/local/binPATH列表中的出现位置早于其他目录(带有)
python,它将控制默认设置
python。但是您确实需要通过添加框架
bin目录来管理PATH,因此
python_select通常并不是那么有用。
使用MacPorts(或类似的基础广泛的发行商)的另一个积极方面是,它提供了许多流行的Python软件包, 包括 处理偶尔的混乱的构建细节并链接到Mac
OS X附带的第三方C库。由于MySQL客户端库和,软件包
MySQLdb和
PIL软件包是Mac OS
X上经常遇到的绊脚石
libjpeg,但是MacPorts使得正确处理一切变得容易得多。但是,您确实可以选择直接使用MacPorts(
sudo portpy26-pil)或通过
pip(
sudo pip installpil)或进行安装
easy_install,也可以下载源代码并自己进行安装(
sudo python setup.py...)。而且因为所有这些都使用Python的
Distutils为了完成繁琐的工作,所有这些方法通常都会最终将给定Python实例的软件包文件安装在同一位置。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)