这是我推荐的 Python 设置,截至 2022 年秋季。Python环境可能是重叠工具混乱在一起,有时不能很好地协同工作。这是为了标准化我们的方法和环境。
工具和有用的链接:
- Python 文档:https://docs.python.org/3/
- Python 标准库:https://docs.python.org/3/library/index.html – 当您尝试解决特定问题时,从这里开始
- pip:https://pip.pypa.io/en/stable/-Python的标准软件包安装程序,包含在语言本身中
- pipx:https://pipxproject.github.io/pipx/– 全局脚本安装程序,构建在 pip 之上
- pipenv:https://pipenv.pypa.io/en/latest/– 项目的包安装程序,管理依赖项和虚拟环境
- pyenv:https://github.com/pyenv/pyenv– 管理不同版本的 Python 本身
- 自制:https://brew.sh/-适用于macOS的软件包管理器,用于特定需求
- Postgres.app:https://postgresapp.com/– macOS 的首选数据库服务器
安装正确的 Python
Python 3 现在是正确的 Python 版本。我们可能有运行不同次要版本的项目——例如 3.7 或 3.9——但我们应该始终默认为最新的可用版本。在撰写本文时,已经是 3.11。最新的 Python 文档将始终在这里:https://docs.python.org/3/。
过去,您可能已经看到使用自制软件安装Python的建议。现在强烈反对这样做。让我大声说:不要用自制软件安装PYTHON。Homebrew 在升级方面可能非常激进和扩展,升级一个包通常会导致许多看似无关的升级,这将经常破坏对其他包的依赖。
使用 pyenv。要安装和管理不同的 Python 版本,请使用 pyenv。在大多数情况下,我建议使用自制软件安装或 git 安装:
brew update
brew install pyenv
我建议使用自制软件来安装 pyenv 而不是 Python 是不是很奇怪?是的,它是。但是pyenv完全是用shell脚本构建的,所以它相对安全,pyenv本身会让你的Python版本安全地与Homebrew的积极升级隔离。
按照说明配置 shell 配置文件 (https://github.com/pyenv/pyenv#installation),以便 pyenv 命令可用,并且您可以根据需要安装新版本的 Python。
从那里,至少安装最新的 Python 稳定版本(再次,可能是 3.10.8),并将其设为全局默认值。这将使正确版本的 pip 可用于安装新软件包。
pyenv install --list # 查看可安装版本列表
pyenv install 3.10.8 # 或者不同版本
pyenv global 3.10.8
python --version
# Python 3.10.8
which python
# /Users/camico/.pyenv/shims/python
which pip
# /Users/camico/.pyenv/shims/pip
全局脚本和实用程序
对于您希望跨项目使用的任何 Python 构建的工具,请使用。安装它:pipx
pip
pip install --user pipx # 安装它
pipx ensurepath # 确保您的系统可以找到它
(请注意,pipx 的文档建议使用 Homebrew 进行安装。如上所述,我不建议在Python项目中使用Homebrew,除了pyenv。
您应该安装withis的第一件事,我们将用于特定项目。pipx
pipenv
虚拟环境
Python 使用虚拟环境来分离不同项目的依赖项。这可能是一个令人沮丧的步骤,特别是如果您习惯于拥有本地文件夹。在过去,这也意味着必须安装一个单独的库。在Python 3中,它现在是标准库的一部分。node_modules
virtualenv
venv
这是一个很好的教程,涵盖了虚拟环境的工作原理:https://docs.python.org/3/tutorial/venv.html
这是 tl;dr:
python -m venv project-dir
source project-dir/bin/activate
这将在文件夹中创建一个虚拟环境。第二个命令将运行激活脚本,该脚本将告诉您的 shell 使用本地版本的 Python 和本地安装的依赖项。在大多数情况下,您不必手动执行此操作,但了解引擎盖下发生的事情很有用。project-dir
在具有alltheplaces-datasette 的项目中,我们既可以用来管理我们的虚拟环境,也可以安装依赖项。在这种情况下,请导航到该目录并运行:Pipfile
pipenv
pipenv sync
cd alltheplaces-datasette
pipenv sync
这也将,假设你已经安装了pyenv并工作,切换到Python中列出的版本(如果需要,安装它)。查阅pipenv 文档,看看它还能做什么。Pipfile
安装本地 Python 包
在大多数情况下,我们将处理具有管理依赖项的项目。在这种情况下,安装新的东西是单行的:Pipfile
pipenv install django
这将安装软件包,将其添加到我们的并更新我们的文件,固定特定版本。如上所述,运行从中安装依赖项,非常类似于安装自,确保我们每次都获得每个依赖项的相同版本。django
Pipfile
Pipfile.lock
pipenv sync
Pipfile.lock
npm ci
package-lock.json
数据库
我们可能将两个数据库与Python一起使用:SQLite和Postgres。
SQLite与Python捆绑在一起。它作为一个嵌入式进程运行,所有数据都包含在一个文件中,对于数据分析非常有用。
Postgres是可用于Web应用程序的最佳数据库。对于本地开发,我建议这是在笔记本电脑上管理数据库服务器的最简单方法。