代码之家  ›  专栏  ›  技术社区  ›  Simone Margaritelli

替换MacOS X默认的python解释器是否安全?

  •  4
  • Simone Margaritelli  · 技术社区  · 14 年前

    我将默认的python 2.6.1安装为 /usr/bin/python 和python 3.1.2安装在 /usr/local/bin/python3.1 . 考虑到我只使用3.x语法,使用symlinks(并删除旧的python二进制文件)将默认解释器(2.6)替换为3.1解释器(包括python配置)是否安全?或者系统是否出于某些我不知道的目的而依赖2.x版本?

    3 回复  |  直到 14 年前
        1
  •  8
  •   Graham Perks    14 年前

    如果您只使用python 3,那么脚本的开头应该是:

    #! /usr/bin/env python3.1
    

    您将使用正确的版本,而不必对系统做任何操作。

    编辑:顺便说一句,这个想法是由python文档提出的。每个脚本将运行它们所依赖的Python版本。由于python 3不向后兼容,用一个会破坏其他实用程序可能依赖的脚本的可执行文件替换python似乎很危险。

        2
  •  2
  •   tshepang Arrie    12 年前

    您不能安全地替换系统提供的python。我找不到特定于Mac的参考资料…但最近的一些Python版本并不向后兼容…许多依赖于旧版本的python的脚本不会在升级后的python上运行。OS X预装了python,因为它依赖于python。

    尝试使用 VirtualEnv 相反。

    更新:刚刚遇到 python-select 可以解决您的问题的MacPorts。

        3
  •  1
  •   pyfunc    14 年前

    除非您急需存储,否则不要替换/删除任何二进制文件。在这种情况下,拆卸它们的里程数也很小。

    您只需将3.1设为默认值:

    defaults write com.apple.versioner.python Version 3.1
    

    还有其他方法可以确保您默认使用3.1,但我没有使用它们。

    export VERSIONER_PYTHON_VERSION=3.1