python包管理利器poetry和conda使用简介

 
# 基本信息
 
conda 相对于主流的虚拟环境管理工具,在 python 开发环境中最大的特点便是 “不需要安装python”。但这并不意味着 conda 不需要 python 来运行脚本,而是 conda 不会依赖于系统中已经存在的 python 进行运行。
因此 conda 拥有较高的独立性以及强悍的跨版本支持。官方网点:https://docs.conda.io/projects/conda/en/latest/index.html
 

poetry作为一个传统虚拟环境的实现,poetry 凭借其强大的依赖分析能力被大量项目所推荐的虚拟环境管理工具。

poetry 作为首选的虚拟环境管理工具是最优方案,其强大的依赖分析能力、环境封装能力。


## 依赖包管理

安装requirements.txt中的所有内容
pip install -r requirements.txt

如何生成requirements.txt
pip freeze > requirements.txt

### Poetry包管理工具

poerty使用文档
<https://www.cnblogs.com/poloyy/tag/poetry/>
<https://pipx.pypa.io/stable/> <https://python-poetry.org/docs/>
<https://www.cnblogs.com/aifengqi/p/15394389.html>

- 安装poetry
pip instll poetry or pipx install poetry or pipx upgrade poetry
安装完成后可以看是否添加poetry至环境变量中
poetry --version

- 使用poetry创建虚拟环境
通常我们会设置 virtualenvs.create=true 并且直接使用 poetry install 等命令来直接自动创建虚拟环境,不过我们也可以通过 poetry env use 手动创建虚拟环境,或通过 poetry env use <解释器路径> 来手动指定一个 python 解释器。例如:

poetry env use C:\Users\Well404\AppData\Local\Programs\Python\Python310\python.exe

此命令便是使用了安装在默认路径的 Python3.10 解释器进行项目的创建。

- 手动创建虚拟环境
使用 poetry env use PYTHONPATH 命令创建虚拟环境, PYTHONPATH可以使用which python 查看python的路径。

- 激活当前虚拟环境
我们也可以通过 poetry run 命令 来直接在该项目的虚拟环境中执行命令,也可以通过 poetry shell 来显式激活这个虚拟环境。退出使用 exit 则退出当前虚拟环境
例如我们要运行这个虚拟环境中的 main.py 文件,便可使用 poetry run python main.py 或在 poetry shell 激活后直接输入 python main.py。

- 查看当前虚拟环境
poetry env list and poetry env info 查看当前虚拟环境的情况

- 虚拟环境命令
通过 poetry env -h 查看帮助文档

- 新建一个项目模板:
poetry new poetry-demo

- 转化现有的项目
已有项目中poetry 会对这个项目进行分析,并生成 pyproject.toml 文件,其过程类似于创建新项目的操作。
cd pre-existing-project
poetry init

- 调整poetry设置
通过 poetry config --list 命令,我们可以查看 poetry 的设置。

通过 poetry config 命令,我们可以调节 poetry 的设置。例如:

poetry config virtualenvs.create true
poetry config virtualenvs.in-project true
在此,我们简单了解两个配置项:virtualenvs.create 和 virtualenvs.in-project

当参数 virtualenvs.create 为 true 时,执行 poetry install 或 poetry add 时会检测当前项目是否有虚拟环境,没有就自动创建,默认为 true。
当参数 virtualenvs.in-project 为 true 时,虚拟环境的依赖将会放置于项目的文件夹内,而不是 poetry 默认的 {cache-dir}/virtualenvs,默认为 false。
通常情况下将这两项均设置为 true,这将简化我们的工作流程,以及更加方便的管理项目与其依赖。

- 使用poetry安装依赖
如果项目中已有 pyproject.toml 文件,可使用 poetry install 来直接安装其中所列出的依赖。poetry install --no-dev 参数以跳过 dev 使用的依赖,通常在部署项目时使用。
使用 poetry add <package> 可以在环境中安装新的依赖,例如 poetry add numpy,也可以一次性添加多个依赖 poetry add requests pendulum。
通过 --dev 参数可以指定为 dev 依赖,例如 poetry add pytest --dev。
通过指定版本号也可限定依赖的版本范围,例如 poetry add pendulum@^2.0.5 或 poetry add "pendulum>=2.0.5"。

- 安装开发依赖
poetry add uvicorn -D or --dev

- 其他常用命令

查看虚拟环境信息 poetry env info
显示虚拟环境所有列表 poetry env list
查看可以更新的依赖 poetry show --outdated
查看项目安装的依赖 poetry show
以树形结构查看项目安装的依赖关系 poetry show --tree

- vscode配置及调试
使用poetry env info -p 查到选择器的路径

在settings.json中添加如下代码

``` json
{
"python.defaultInterpreterPath": "/Users/webplus/Library/Caches/pypoetry/virtualenvs/fastapi-glm-demo-dEYW9svt-py3.11"
}
```

调试在launch.json中添加如下代码

``` json
{
"name": "Python 调试程序: FastAPI",
"type": "debugpy",
"request": "launch",
"module": "uvicorn",
"args": ["app.main:app", "--reload"],
"jinja": true
}
```

## conda虚拟环境管理

Python environments in VS Code <https://code.visualstudio.com/docs/python/environments>

- 创建一个名为 test 的虚拟环境。
conda create -n test

- 创建一个名为 test,且python版本为 3.8 的虚拟环境的虚拟环境。
conda create -n test python=3.8

- 从已有的虚拟环境 test 复制一份为 test_copy。
conda create -n test_copy --clone test

- 使用conda移除虚拟环境
移除一个名为 test 的虚拟环境。
conda remove -n test --all

- 查看conda虚拟环境列表
conda env list

- 使用conda激活虚拟环境
激活一个名为 test 的虚拟环境。
conda activate test
首次使用conda时:
source activate chatglm3-6b 或 conda activate chatglm3-6b

- 退出conda虚拟环境
conda deactivate
值得注意的是,此命令不包含任何额外的参数。因为一个终端仅能同时激活一个虚拟环境,因此也没有必要指定取消激活的虚拟环境的环境名。

- 返回主环境
如果想返回默认的python 2.7环境,运行
source deactivate py35 # for Linux & Mac

- 查看系统中的所有环境

用户安装的不同Python环境会放在~/anaconda/envs目录下。查看当前系统中已经安装了哪些环境,使用conda info -e。
conda env list 查询当前的conda虚拟环境 <https://blog.csdn.net/miracleoa/article/details/106115730>

## 运行

python -m sklearnex my_application.py
python -m app.main
posted on 2024-02-22 16:09  稻草人.Net  阅读(509)  评论(0编辑  收藏  举报