ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

在 macOS 上正确安装 Python 3:基于 python-guide 的 Homebrew 完整实战指南

在 macOS 上正确安装 Python 3:基于 python-guide 的 Homebrew 完整实战指南 在 macOS 上正确安装 Python 3基于 python-guide 的 Homebrew 完整实战指南【免费下载链接】python-guidePython best practices guidebook, written for humans.项目地址: https://gitcode.com/gh_mirrors/py/python-guide导读本文是《The Hitchhikers Guide to Python》python-guide 开源仓库中 docs/starting/install3/osx.rst 一文的完整中文实战指南聚焦于在 macOS 上通过 Homebrew 正确安装 Python 3、配置 PATH、处理系统自带 Python 2.7 与 Homebrew 多版本解释器共存并衔接 Pipenv 虚拟环境的最佳实践。读完本文你将掌握一套可直接复制的 macOS Python 3 开发环境搭建流程并理解每一步背后的原理与坑点。为什么系统自带的 Python 不值得用于开发在 macOS 10.8 至 12.3 之间的系统版本出厂自带 Python 2.7。如果你的 macOS 版本落在这个区间内开箱即可直接使用 Python 2无需安装或配置任何额外东西——但本文档要指导的是Python 3的安装。自带 Python 的问题在于它适合学习但不适合开发。系统自带的 Python 版本可能长期滞后于 Python 官方当前稳定发布版本官方发布版才被认为是稳定的生产版本系统 Python 被 macOS 内部机制依赖直接在系统解释器上安装第三方包可能污染系统环境、引入难以排查的问题在 macOS 12.3 及以后版本系统已不再捆绑 Python 2.7一套独立、可控的 Python 3 环境就更加必要。这也是 python-guide 仓库在 docs/starting/installation.rst 中反复强调的观点强烈建议在使用真实世界构建 Python 应用之前先安装好指南中描述的工具与库尤其是 Setuptools、Pip 与 Virtualenv并明确推荐使用 Python 3 而非 Python 2参见 docs/starting/which-python.rst 对解释器选型的讨论。Doing it Right装一个真正的 Python第一步准备 C 编译器GCC在安装 Python 之前需要先安装 GCC。macOS 上获取 GCC 有三种途径途径说明注意完整版 Xcode从 Mac App Store 下载体积大功能全Command Line Tools命令行工具从 Apple 开发者站点单独下载需要 Apple 账号体积比完整 Xcode 小得多OSX-GCC-Installer更小的 GCC 安装包非官方渠道谨慎使用关于编译器安装原文档给出了两条重要警告如果你已经安装了 Xcode就不要安装 OSX-GCC-Installer。两者组合使用可能引发难以诊断的问题如果你全新安装了 Xcode还需要在终端运行xcode-select --install来补充命令行工具。第二步安装 Homebrew包管理器macOS 自带大量 Unix 工具但与 Linux 系统相比它缺少一个关键组件包管理器。Homebrew 正是填补这一空白的社区方案。打开Terminal终端或任意 macOS 终端模拟器运行 Homebrew 官方安装脚本$ /bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)脚本会先说明它将做出的改动并在安装开始前向你确认。安装完成后需要把 Homebrew 目录插入到PATH环境变量的最前面让系统优先使用 Homebrew 提供的工具。在~/.profile文件末尾添加以下一行export PATH/usr/local/opt/python/libexec/bin:$PATH注意如果你使用的是 macOS 10.12Sierra或更老的系统请改用下面这一行export PATH/usr/local/bin:/usr/local/sbin:$PATH第三步安装 Python 3现在可以安装 Python 3 了$ brew install python这个过程大约需要一两分钟。与从源码编译或使用官方 pkg 安装器相比Homebrew 方式的最大优势是它会自动为你配置好路径、链接关系与依赖并将pip指向 Homebrew 版 Python 3省去了大量手工配置工作。PipPython 包管理工具Homebrew 会顺便为你安装pip并且它指向的是 Homebrew 版的 Python 3——这一点无需额外配置。补充说明仓库中 docs/starting/install3/linux.rst 指出Python 2.7.9Python 2 系列及 Python 3.4 之后的版本默认自带 pip。在 macOS 的 Homebrew 场景下pip 与对应解释器版本自动绑定这也是推荐优先使用 Homebrew 的原因之一。日常使用多版本解释器如何共存安装完成后你的机器上可能同时存在系统自带的 Python 2.7、可能已安装的 Homebrew 版 Python 2、以及 Homebrew 版 Python 3。以下是三者的调用约定$ python # 启动 Homebrew 安装的 Python 3 解释器$ python2 # 启动 Homebrew 安装的 Python 2 解释器如果安装了$ python3 # 启动 Homebrew 安装的 Python 3 解释器与之对应的 pip 系列命令如果安装了 Homebrew 版 Python 2则pip2指向 Python 2如果安装了 Homebrew 版 Python 3则pip指向 Python 3。本文档的后续内容都假设python命令引用的是 Python 3。安装完成后可以这样验证# 我安装好 Python 3 了吗 $ python --version Python 3.7.1 # 成功技巧若不确定当前python究竟指向哪个解释器可在终端执行which python查看其真实路径Homebrew 通常会把可执行文件符号链接到/usr/local/bin下。仓库中对应的 Python 2 版安装指南 docs/starting/install/osx.rst 也采用了同样的命名约定python/python2/python3分别对应不同解释器可交叉参考。下一步Pipenv 与虚拟环境安装好 Python 3 之后接下来的关键一步是安装Pipenv用它来管理依赖和虚拟环境。为什么需要虚拟环境虚拟环境Virtual Environment是一种将不同项目所需的依赖彼此隔离存放的工具通过为每个项目创建独立的虚拟 Python 环境来解决经典的依赖冲突问题项目 X 依赖 1.x 版本而项目 Y 需要 4.x 版本。同时它还能保持全局site-packages目录干净、可控。例如你可以同时维护一个依赖 Django 1.10 的项目和另一个依赖 Django 1.8 的项目互不干扰。安装 Pipenv使用 pip 进行用户级安装避免破坏系统级包$ pip install --user pipenv提示--user是用户安装用于防止破坏任何系统级包。如果安装后 shell 中找不到pipenv命令需要把用户 base 的二进制目录加入PATH。在 macOS/Linux 上可运行python -m site --user-base查看用户 base 路径在其末尾追加bin即为二进制目录通常输出~/.local对应~/.local/bin然后像本文前面配置 Homebrew 一样将其写入~/.profile永久生效。Pipenv 的基本用法Pipenv 以项目为单位管理依赖。进入项目目录本教程也可以用一个空目录执行$ cd project_folder $ pipenv install requestsPipenv 会安装requests库并在项目目录生成一个Pipfile文件。Pipfile用于记录项目所需的依赖方便日后重新安装或分享给他人。典型输出如下Creating a Pipfile for this project... Creating a virtualenv for this project... Using base prefix /usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6 New python executable in ~/.local/share/virtualenvs/tmp-agwWamBd/bin/python3.6 Also creating executable in ~/.local/share/virtualenvs/tmp-agwWamBd/bin/python Installing setuptools, pip, wheel...done. Virtualenv location: ~/.local/share/virtualenvs/tmp-agwWamBd Installing requests... Collecting requests Using cached requests-2.18.4-py2.py3-none-any.whl Collecting idna2.7,2.5 (from requests) ... Successfully installed certifi-2017.7.17.1 chardet-3.0.4 idna-2.6 requests-2.18.4 urllib3-1.22创建一个main.py来验证安装的包可用import requests response requests.get(https://httpbin.org/ip) print(Your IP is {0}.format(response.json()[origin]))用pipenv run运行脚本确保脚本能访问到虚拟环境中已安装的包$ pipenv run python main.py Your IP is 8.8.8.8如果想在 shell 中让所有命令都访问到虚拟环境中的包可以使用pipenv shell进入一个全新的子 shell。更底层的 virtualenv 用法如果不想使用 Pipenv也可以单独使用virtualenv这一底层工具$ pip install virtualenv $ virtualenv --version # 验证安装基本使用流程为项目创建虚拟环境$ cd project_folder $ virtualenv venvvirtualenv venv会在当前目录创建venv文件夹其中包含 Python 可执行文件以及一份可用的pip库。环境名可以任意指定venv是业界通用约定且常见于.gitignore等忽略文件中省略名称则直接放在当前目录。激活虚拟环境$ source venv/bin/activate激活后提示符左侧会出现环境名如(venv)Your-Mac:project_folder UserName$此后pip安装的包都会被放进venv目录与全局 Python 隔离。退出虚拟环境$ deactivate关于 Pipenv、virtualenv 及更丰富的 virtualenvwrapper、direnv 等工具链的完整教程请参阅仓库中的 docs/dev/virtualenvs.rst即本文档下一步指向的正文。进阶配置让 pip 强制在虚拟环境中运行macOS 下搭建好虚拟环境工作流后还有一个非常实用的进阶技巧出自仓库 docs/dev/pip-virtualenv.rst当你同时维护多个项目时很容易在忘记激活对应虚拟环境的情况下执行pip install把包误装到全局环境。在~/.bashrc中添加如下配置即可强制pip必须处于激活的虚拟环境中才能安装export PIP_REQUIRE_VIRTUALENVtrue保存后执行source ~/.bashrc。此后在虚拟环境之外运行pip installpip 会给出友好提醒$ pip install requests Could not find an activated virtualenv (required).同样的配置也可以写入pip.confUnix 与 macOS 使用位于$HOME/.pip/pip.conf[global] require-virtualenv true如果确实需要在全局安装某些通用工具可以在~/.bashrc中定义一个绕过函数gpip() { PIP_REQUIRE_VIRTUALENVfalse pip $ }之后用gpip install即可在全局安装函数名可自定义。常见疑问与注意事项小结系统自带 Python 与 Homebrew Python 并存默认python命令在安装 Homebrew 版 Python 3 后指向 Homebrew 解释器python2/python3可用于显式选择解释器版本这一命名约定同时体现在 docs/starting/install/osx.rstPython 2 版指南中。pip与pip2分别对应 Homebrew 版 Python 3 与 Python 2安装哪个解释器版本对应命令才存在。Windows / Linux 用户同主题的跨平台指南见 docs/starting/install3/win.rstChocolatey 方式与 docs/starting/install3/linux.rstapt/dnf 方式。安装总入口本文属于正确安装 Python系列整体索引位于 docs/starting/installation.rst并挂载于仓库文档总目录 docs/contents.rst.inc 的 Getting Started 一节。本文内容改写自 docs/starting/install3/osx.rst该页基于另一份同许可协议的指南改写而来并补充了虚拟环境、pip 进阶配置等后续环节的实操细节帮助你从装好 Python 3顺利过渡到用正确的方式管理项目依赖。【免费下载链接】python-guidePython best practices guidebook, written for humans.项目地址: https://gitcode.com/gh_mirrors/py/python-guide创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进