pyenv-win和poetry管理python环境(小白)

记录自己(小白)第一次使用pyenv和poetry管理python环境的一些过程,给大家参考!

概要

推荐使用pyenv管理python版本和poetry管理第三方依赖包,及项目环境在另一个项目的复现

整体架构流程

1、先安装pyenv-win(window版本)和poetry

(1)安装pyenv-win 
这是官方的安装代码,直接在powershell中运行即可,但是运行了很多次依然提示我错误根本识别不了nvoke-WebRequest...。所以我采用第二种方法

nvoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"

(2)打开原网址 https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1

然后右击 另存为 install-pyenv-win.ps1(C:\Users\XXX),采用自己先下载然后安装的流程,保证不会出错。下载好了之后然后在powershell中运行安装  &"./install-pyenv-win.ps1"

& : 无法加载文件 C:\Users\XXX\install-pyenv-win.ps1。未对文件 C:\Users\XXX\install-pyenv-win.ps1 进行数字签名。

仍然出现错误,发现PowerShell 默认执行策略为 Restricted(禁止运行未签名脚本),需更改为允许运行本地脚本的策略:

临时允许单次运行

  • 在 PowerShell 中运行以下命令(无需管理员权限):

powershell

powershell -ExecutionPolicy Bypass -File "你下载的位置"

然后再运行,即可安装。

&"./install-pyenv-win.ps1"
  • 验证是否已经安装成功,提示 pyenv 3.1.1,已成功
pyenv --version

安装python,我这里装的是3.11.5版本

pyenv install 3.11.5

(2)安装poetry

(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -
  • 安装好之后一定要把路径配置到环境变量

  • 验证是否安装成功,显示版本号即成功。
> poetry --version
Poetry (version 2.1.1)

2、poetry管理环境

找到你的项目跟目录,比如 E:\05_Phd_fighting\08_software_learning\08_project,在powershell输入cd XX(你的根目录),在你的根目录下新建环境。输入

poetry init
  • 按提示输入项目信息(名称、版本、描述等),直接回车可留空或使用默认值。
  • 完成后会生成 pyproject.toml 文件(项目依赖配置文件)
  • 虚拟环境默认路径:C:\Users\<用户名>\AppData\Local\pypoetry\Cache\virtualenvs(Windows)
  • 注意python的版本选择 尽量选择范围大一点的 防止python版本太低/高 影响兼容性

若需在项目根目录下生成 .venv 文件夹,可先配置:

poetry config virtualenvs.in-project true
安装生产依赖(如 requests),环境的名称会默认 .venv名称,是系统默认​
poetry add requests

激活环境

poetry shell
退出虚拟环境
exit

poetry env list可以查看已经建立的环境,如.venv(activated)

3、在已经的环境下,重新建立个环境且配置相同

复制 pyproject.toml 和 poetry.lock文件到你的新项目文档就可以,然后输入poetry install 会自动安装两个文件里的依赖包。pyproject.toml只会记录你安装的包 不会记录 安装这些包的其他依赖包,这个好评!

4、常见指令分享

  • poetry语句指令
##########poetry管理环境语句########
# 创建一个新的项目 
poetry new <project_name>

# 环境列表   
poetry env list

# 安装包      
poetry add XXX

# 删除依赖包 
poetry remove XXXX

# 安装项目的所有依赖 
poetry install 

# 更新项目依赖到最新版本  
poetry update

# 激活虚拟环境 
poetry shell

# 运行项目脚本 
poetry run python my_project(我的项目名)/script.py

#查看设置选项  
poetry config --list

# 查看虚拟环境地址(判断是否在项目目录下)  
poetry env info --path

# 设定虚拟环境设在项目文件下  
poetry config virtualenvs.in-project true

# 看当前已经安装的包和结构  
 poetry show --tree

# 删除指定环境  
poetry env remove my-project-14HbYSZ2-py3.12(环境名称)

#指定具体的python版本 
poetry env use "E:\anaconda3\envs\pytorch311\python.exe"

# 更新依赖树并尝试解决冲突
poetry update

# 手动指定版本(例:将 pandas 锁定为 2.1.0)
poetry add pandas==2.1.0

######## 清理并重建虚拟环境
# 删除当前虚拟环境
Remove-Item -Recurse -Force .venv

# 确保 Poetry 在项目内生成虚拟环境
poetry config virtualenvs.in-project true

# 显式指定 Python 解释器(替换为实际路径)
poetry env use "E:\...\python.exe"

# 重新安装依赖并生成环境
poetry install --no-root

# 检查 Poetry 当前使用的 Python 解释器
poetry env info --path

# 检查 .venv 目录结构
Get-ChildItem .venv

# 激活虚拟环境
poetry shell

# 检查 Python 解释器路径
python -c "import sys; print(sys.executable)"

  • pyenv 语句分享
##更新pyenv

##如果通过安装程序安装

##在 Powershell 终端中运行以下命令:&"${env:PYENV_HOME}\install-pyenv-win.ps1"

##命令
   commands     List all available pyenv commands
   local        设置或显示本地特定于应用程序的Python版本
   latest       打印带有给定前缀的最新安装或已知版本
   global       设置或显示全局Python版本
   shell        设置或显示特定于shell的Python版本
   install      安装1个或更多版本的Python
   uninstall    卸载1个或更多版本的Python
   update       更新缓存的版本DB
   rehash       重新散列pyenv shims(在切换Python版本后运行此命令)
   vname        显示当前Python版本
   version      显示当前Python版本及其起源
   version-name 显示当前Python版本
   versions     列出pyenv可用的所有Python版本
   exec         通过首先准备PATH来运行可执行文件,以便选择
                通过首先准备PATH来运行可执行文件,以便选择
   which        显示可执行文件的完整路径
   whence       列出包含给定可执行文件的所有Python版本

# 查看当前 pyenv已经安装的python版本:  pyenv versions

# 指定当前根目录的python版本为:  pyenv local 3.11.5(版本号)

小结

欢迎大家把自己遇到问题分享!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值