2010-12-16 51 views
12

我刚刚从Python.org下载了Python 2.7.1 DMG。我看到了获得ActivePython的建议,但是我更喜欢Python.org中的一个。与Apple提供的Python并行安装Python 2.7.1

  1. 如果我只是运行DMG内mpkg安装程序,接受所有默认值,将它与苹果提供的Python的和平共处?
  2. 如果我在终端输入python,我会得到哪一个?
  3. 在终端中,如何指定运行Apple提供的Python?那我自己安装的Python呢?
  4. 当安装不同的Python版本时,这些关于设置PATH的讨论是什么?我知道Python安装程序会自动设置它。但我仍然想在引擎盖下窥视。我知道如何在Windows(环境变量)中做到这一点。对于Mac OS X,我如何修改PATH

我不妨先尝试一下我自己,但我是新来的Mac。 Python是一个相当复杂的安装,将文件写入不同的文件夹并配置操作系统设置,如PATH。 TrashMe或AppCleaner可能不是非常有效的卸载Python,如果我想回到一个干净的平板。因此,我想对上述问题获得清晰的见解。

+0

可以请你要么接受一个答案或更新为什么答案是不被接受的线程? – Sumod 2011-07-01 17:22:18

回答

24

如果在使用python.org安装程序时没有更改默认的软件包集合,则从命令行输入python应该运行新安装的Python 2.7。 (运行安装程序后需要启动新的终端会话才能看到此信息。)OS X的当前python.org安装程序将在您的Applications目录中创建一个名为Python m.n的文件夹,具体取决于Python版本。如果您查看/Applications/Python 2.7,您会看到一个名为Update Shell Profile.command的文件。这是一个shell脚本;你可以在编辑器或Quicklook中检查它。其目的是修改OS X上最常见shell程序的启动文件(bash,sh,csh),以确保将新Python的可执行命令所在的目录添加到PATH中目录列表的前面环境变量,以便在找到Apple提供的python命令之前找到它中的python命令。默认情况下,安装程序自动为您运行Update Shell Profile.command。这将导致这样的事情:

$ cat ~/.bash_profile 
# .bash_profile 
# ... other stuff 

# Setting PATH for Python 2.7 
# The orginal version is saved in .bash_profile.pysave 
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}" 
export PATH 

如果你把该目录一看,你会看到这样的事情:

$ ls -l /Library/Frameworks/Python.framework/Versions/2.7/bin 
total 272 
lrwxr-xr-x 1 root admin  8 Nov 30 00:49 [email protected] -> 2to3-2.7 
-rwxrwxr-x 1 root admin 140 Nov 30 00:30 2to3-2.7* 
lrwxr-xr-x 1 root admin  7 Nov 30 00:49 [email protected] -> idle2.7 
-rwxrwxr-x 1 root admin 138 Nov 30 00:30 idle2.7* 
lrwxr-xr-x 1 root admin  8 Nov 30 00:49 [email protected] -> pydoc2.7 
-rwxrwxr-x 1 root admin 123 Nov 30 00:30 pydoc2.7* 
lrwxr-xr-x 1 root admin  9 Nov 30 00:49 [email protected] -> python2.7 
lrwxr-xr-x 1 root admin  16 Nov 30 00:49 [email protected] -> python2.7-config 
-rwxrwxr-x 1 root admin 33764 Nov 30 00:31 python2.7* 
-rwxrwxr-x 1 root admin 1663 Nov 30 00:31 python2.7-config* 
lrwxr-xr-x 1 root admin  10 Nov 30 00:49 [email protected] -> pythonw2.7 
-rwxrwxr-x 1 root admin 33764 Nov 30 00:31 pythonw2.7* 
lrwxr-xr-x 1 root admin  11 Nov 30 00:49 [email protected] -> smtpd2.7.py 
-rwxrwxr-x 1 root admin 18586 Nov 30 00:30 smtpd2.7.py* 

新的蟒蛇可作为命令python2.7但也作为python的象征性链接。因为PATH环境已经改变:

$ echo $PATH 
/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin 

当你输入python作为外壳的命令,即符号链接将被首先发现在系统提供的用户命令的目录/usr/bin一个苹果提供的python前安装(如在OS X 10.6):(注意,在一般情况下,你不应该试图在/usr/bin修改或删除文件,因为它们是OS X的一部分,由苹果公司管理)

$ ls /usr/bin/py* 
/usr/bin/pydoc*   /usr/bin/python-config* /usr/bin/[email protected] 
/usr/bin/[email protected]   /usr/bin/[email protected]  /usr/bin/pythonw* 
/usr/bin/[email protected]   /usr/bin/[email protected] /usr/bin/[email protected] 
/usr/bin/python*   /usr/bin/[email protected]  /usr/bin/[email protected] 

在OS X上管理多个Python安装有很多方法;检查档案或网页。需要记住的一点是,您始终可以使用所需python命令的绝对路径来检查。因此,与修改后的路径上面,你应该会看到以下行为:

$ /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 -c 'import sys;print(sys.version)' 
2.7.1 (r271:86882M, Nov 30 2010, 09:39:13) 
[GCC 4.0.1 (Apple Inc. build 5494)] 
$ python2.7 -c 'import sys;print(sys.version)' 
2.7.1 (r271:86882M, Nov 30 2010, 09:39:13) 
[GCC 4.0.1 (Apple Inc. build 5494)] 
$ python -c 'import sys;print(sys.version)' 
2.7.1 (r271:86882M, Nov 30 2010, 09:39:13) 
[GCC 4.0.1 (Apple Inc. build 5494)] 
$ /usr/bin/python -c 'import sys;print(sys.version)' 
2.6.1 (r261:67515, Jun 24 2010, 21:47:49) 
[GCC 4.2.1 (Apple Inc. build 5646)] 
$ /usr/bin/python2.6 -c 'import sys;print(sys.version)' 
2.6.1 (r261:67515, Jun 24 2010, 21:47:49) 
[GCC 4.2.1 (Apple Inc. build 5646)] 
4
  1. 是的,它会正常工作。
  2. 您将不得不更改适当的符号链接。您始终可以使用which python进行检查。
  3. 您可以为不同版本创建额外的符号链接(例如python_macpython_standard)。
  4. 阅读this
1

不同的Python安装,可向不阻专门运行,如果你使用virtualenv

您可以按照这些文章关于

  1. bootstrapping virtual environments
  2. setting up python ecosystems

这些将指导您在不同的地方安装不同版本的python,每个版本都有自己的一套站点包,并让它们分别在不同的项目上工作。强烈建议您仔细研究它,因为它还解释了如何以简单的方式更改PATH变量,以便可以通过shell命令找到不同的python安装。

这里是什么地方不同的Python安装到一些快捷方式..

在终端键入which python会告诉你它的位置。您也可以使用python -V查看使用的版本。请记住,pythonpython2.x可以是不同的东西。您可以使用alias命令将适当的名称分配给不同的python安装,以便在终端或脚本中调用它们。例如,

alias /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 sys-py27 
  • 苹果提供的系统Python是安装在/System/Library/Frameworks/Python.framework/usr/bin/python

    • 事实上,你不应该乱用这些试图通过手动删除它们。系统python可能被您计算机中的其他软件使用。
    • 要检查什么是目前系统蟒可以使用

      python -c 'import sys;print(sys.version)'

  • 您下载并运行打包安装程序通常安装到/Library/Frameworks/Python.framework/Versions/2.7/bin/

    • 您可以手动删除Python.framework文件夹。您也可以在Applications文件夹中看到Python以及IDLE,AppBuilder和PythonLauncher等其他内容。如果需要,您可以继续并删除这些内容。
  • 的MacPorts将安装Python或类似python26和python27东西/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/

    • 您可以通过使用通常的sudo port uninstall packageName卸载它们,如果你想删除的依赖使用这样的代码

      sudo port uninstall python27 --follow-dependents installed

    • 所有其他的东西,如numpy,scipy,PIL,opencv等您尝试使用port安装会去

      /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages