原文:towardsdatascience.com/creating-project-environments-in-python-with-vscode-b95b530cd627


简介

创建数据科学项目可以相当直接。随着如今可用的资源众多,这仅仅是一个选择开发工具并启动项目的问题。

除了几个可以帮助您完成几乎所有想要创建的工作的 AI 机器人之外,文档也容易获得。

然而,随着项目变得越来越复杂和专业,将项目彼此隔离的需求就会出现。有时,在项目 A 中协同工作良好的模块,可能在项目 B 中无法一起运行。或者,两个不同包中具有相同名称的方法可能会引起混淆。我的意思是,在非隔离环境中可能会发生很多事情。

那就是我们需要开始隔离开发环境的时候了。所以,在这篇文章中,我们的想法是向您展示一种快速简单的方法来使用 Python 和 VS Code 创建一个隔离的环境。

让我们开始工作。

项目环境

如前所述,开发环境是在您的计算机内部创建的一个隔离的“盒子”,仅用于安装该项目要使用的模块。

开发环境是在您的计算机内部创建的一个隔离的“盒子”,用于更好的包控制。

想象我们将创建一个需要 Pandas、Scikit Learn 和 Streamlit 的分类项目。在这种情况下,我们只需安装这些模块及其依赖项,无需添加许多其他永远不会使用的包。然后它可以与另一个不使用 Streamlit 的项目分开,例如。

现在,让我们开始编写一些代码。

使用 Pip

创建环境的最简单方法是使用 Python 的本地工具。为此,只需启动一个 VS Code 会话并打开一个新的 PowerShell 终端(终端 > 新终端)。

接下来,您可以创建一个新的文件夹用于项目。

mkdir name_your_project

然后,更改文件夹以访问最近创建的目录。

cd name_your_project

在这个阶段,如果您想打开新创建的文件夹,可以使用 VS Code。只需记住从新窗口重新打开终端。

在新文件夹中,是时候创建新的环境了。使用以下命令。我将使用标准名称 .venv 创建一个虚拟环境。

python -m venv .venv

现在这样做。要激活它,你可以在 PowerShell 中使用此命令。

.venv/Scripts/activate

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/37763e5b7a3ab19a863d71d6f39fc4ae.png

这是激活的虚拟环境。图片由作者提供。

现在,当此环境激活时,您想安装的任何内容都将被隔离在 test_proj 下,而不会影响其他项目。让我们安装 Pandas 和 Streamlit,但不安装 Scipy。

pip install pandas
pip install streamlit

如果我运行一个快速脚本进行检查,这两个包都已安装,这里是结果。

import pandas as pd
import streamlit as st
print(pd.__version__)
print(st.__version__)

[OUT]:
2.2.2
1.38.0

如果我检查 Scipy import scipy

import scipy
[OUT]: ModuleNotFoundError: No module named 'scipy'

如果我们现在创建另一个环境并只安装 Scipy,看看会发生什么。

python -m venv env2
env2/Scripts/activate
pip install scipy

import pandas as pd
[OUT]: ModuleNotFoundError: No module named 'pandas'

看看 Pandas 在 env2 中没有安装。让我们看看 Scipy。

import scipy.stats as scs
print(scs.norm.rvs(loc=1, scale=3)

[OUT]:
0.5100109427428302

真是妙不可言。

使用 PyEnv 和 Poetry

现在,让我们看看另一种使用 PyEnv 和 Poetry 来完成同样任务的方法,这两个 Python 包非常适合这个目的。这甚至比 Python 的原生工具还要简单。

使用 PyEnv 是一个好主意,因为它可以在同一台机器上管理不同的 Python 版本。当处理多个项目时,一个始终潜在的问题是,特定的 Python 版本与你要工作的(或想要工作的)包不兼容。在这种情况下,你需要安装一个更早或更新的 Python 版本。PyEnv 就是为了解决这个问题而出现的。

安装这个包有点棘手,但按照这个教程,你可以在 Windows 上迅速完成。

现在要安装 Poetry,首先你必须安装 pipx。请按照这里步骤进行操作,然后使用命令 pipx install poetry 来完成 Poetry 的安装。

你可能还需要运行下一个命令来告诉你的 Windows Shell,你可以让 Poetry 管理虚拟环境。

poetry config virtualenvs.in-project true

在完成初始安装步骤后,要在 VSCode 的 PowerShell 中使用 Poetry 创建新环境,操作非常简单:

poetry new test_proj  

Created package test_proj in test_proj

使用这个命令,Poetry 已经创建了虚拟环境文件夹、测试文件夹,以及一个包含所有项目规范的漂亮的 pyproject.toml 文件。真是太棒了。看看 toml 文件。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/ec71e0848fa5e60e9ef835738f761795.png

pyproject.toml 文件。图片由作者提供。

当我输入 poetry shell 命令时,Poetry 会创建 .venv 文件夹并激活它。

现在,要向项目中添加新包,你可以使用:

poetry add pandas

This gets added to the toml file:
[tool.poetry.dependencies]
python = "³.12"
pandas = "².2.2"

或者要删除它们,使用:

poetry remove pandas

要为这个项目使用不同的 Python 版本,我们可以要求 PyEnv 使用 3.11.5,例如。

pyenv local 3.11.5

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/9d71f3879c7784bfeb7e395fd17d3219.png

Python 版本已更改。图片由作者提供。

完成后,你可以在 shell 中输入 exit 来停用你的环境。

在离开之前

有了这些,我们就结束了这次小巡游,通过使用 VS Code、Pip 和 Poetry 来了解 Python 中的环境管理。

这种知识对于能够在一个受控的“盒子”中隔离我们项目的效果非常有用,可以减轻依赖性问题或那个著名的“在我的机器上它工作过”的问题。

我相信 Poetry 生成的 toml 文件也非常有用,并为你总结了项目中的内容。此外,Poetry 不会带来列出的所有依赖项。它只显示你实际请求安装的包,如 “Pandas”、“Scipy” 等,而不是显示 numpy 和其他依赖项。

参考资料

如何在 Windows 上安装 pyenv [2023]

介绍

GitHub – pyenv/pyenv: 简单的 Python 版本管理

使用 pyenv 管理多个 Python 版本 – Real Python

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐