如何更高效地设置Python环境

这是我推荐的 Python 设置,截至 2022 年秋季。Python环境可能是重叠工具混乱在一起,有时不能很好地协同工作。这是为了标准化我们的方法和环境。

工具和有用的链接:

安装正确的 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一起使用:SQLitePostgres

SQLite与Python捆绑在一起。它作为一个嵌入式进程运行,所有数据都包含在一个文件中,对于数据分析非常有用。

Postgres是可用于Web应用程序的最佳数据库。对于本地开发,我建议这是在笔记本电脑上管理数据库服务器的最简单方法。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片
聚合模块
建站技术
技术分享

文章内嵌广告