'poetry' 不是内部或外部命令,也不是可运行的程序

pip install poetry>=2.0 报错

pip install "poetry>=2.0"
Looking in indexes: https://pypi.mirrors.ustc.edu.cn/simple
Requirement already satisfied: poetry>=2.0 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (2.2.1)
Requirement already satisfied: build<2.0.0,>=1.2.1 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from poetry>=2.0) (1.3.0)
Requirement already satisfied: cachecontrol<0.15.0,>=0.14.0 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from cachecontrol[filecache]<0.15.0,>=0.14.0->poetry>=2.0) (0.14.4)
Requirement already satisfied: cleo<3.0.0,>=2.1.0 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from poetry>=2.0) (2.1.0)
Requirement already satisfied: dulwich<0.25.0,>=0.24.0 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from poetry>=2.0) (0.24.10)
Requirement already satisfied: fastjsonschema<3.0.0,>=2.18.0 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from poetry>=2.0) (2.21.2)
Requirement already satisfied: findpython<0.8.0,>=0.6.2 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from poetry>=2.0) (0.7.1)
Requirement already satisfied: installer<0.8.0,>=0.7.0 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from poetry>=2.0) (0.7.0)
Requirement already satisfied: keyring<26.0.0,>=25.1.0 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from poetry>=2.0) (25.7.0)
Requirement already satisfied: packaging>=24.2 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from poetry>=2.0) (25.0)
Requirement already satisfied: pbs-installer<2026.0.0,>=2025.1.6 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from pbs-installer[download,install]<2026.0.0,>=2025.1.6->poetry>=2.0) (2025.12.5)
Requirement already satisfied: pkginfo<2.0,>=1.12 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from poetry>=2.0) (1.12.1.2)
Requirement already satisfied: platformdirs<5,>=3.0.0 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from poetry>=2.0) (4.5.1)
Requirement already satisfied: poetry-core==2.2.1 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from poetry>=2.0) (2.2.1)
Requirement already satisfied: pyproject-hooks<2.0.0,>=1.0.0 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from poetry>=2.0) (1.2.0)
Requirement already satisfied: requests<3.0,>=2.26 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from poetry>=2.0) (2.32.5)
Requirement already satisfied: requests-toolbelt<2.0.0,>=1.0.0 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from poetry>=2.0) (1.0.0)
Requirement already satisfied: shellingham<2.0,>=1.5 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from poetry>=2.0) (1.5.4)
Requirement already satisfied: tomli<3.0.0,>=2.0.1 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from poetry>=2.0) (2.3.0)
Requirement already satisfied: tomlkit<1.0.0,>=0.11.4 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from poetry>=2.0) (0.13.3)
Requirement already satisfied: trove-classifiers>=2022.5.19 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from poetry>=2.0) (2025.12.1.14)
Requirement already satisfied: virtualenv>=20.26.6 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from poetry>=2.0) (20.35.4)
Requirement already satisfied: colorama in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from build<2.0.0,>=1.2.1->poetry>=2.0) (0.4.6)
Requirement already satisfied: importlib-metadata>=4.6 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from build<2.0.0,>=1.2.1->poetry>=2.0) (8.7.0)
Requirement already satisfied: msgpack<2.0.0,>=0.5.2 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from cachecontrol<0.15.0,>=0.14.0->cachecontrol[filecache]<0.15.0,>=0.14.0->poetry>=2.0) (1.1.2)
Requirement already satisfied: filelock>=3.8.0 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from cachecontrol[filecache]<0.15.0,>=0.14.0->poetry>=2.0) (3.20.1)
Requirement already satisfied: crashtest<0.5.0,>=0.4.1 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from cleo<3.0.0,>=2.1.0->poetry>=2.0) (0.4.1)
Requirement already satisfied: rapidfuzz<4.0.0,>=3.0.0 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from cleo<3.0.0,>=2.1.0->poetry>=2.0) (3.14.3)
Requirement already satisfied: urllib3>=2.2.2 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from dulwich<0.25.0,>=0.24.0->poetry>=2.0) (2.6.2)
Requirement already satisfied: typing_extensions>=4.6.0 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from dulwich<0.25.0,>=0.24.0->poetry>=2.0) (4.15.0)
Requirement already satisfied: pywin32-ctypes>=0.2.0 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from keyring<26.0.0,>=25.1.0->poetry>=2.0) (0.2.3)
Requirement already satisfied: jaraco.classes in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from keyring<26.0.0,>=25.1.0->poetry>=2.0) (3.4.0)
Requirement already satisfied: jaraco.functools in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from keyring<26.0.0,>=25.1.0->poetry>=2.0) (4.3.0)
Requirement already satisfied: jaraco.context in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from keyring<26.0.0,>=25.1.0->poetry>=2.0) (6.0.1)
Requirement already satisfied: zstandard>=0.21.0 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from pbs-installer[download,install]<2026.0.0,>=2025.1.6->poetry>=2.0) (0.25.0)
Requirement already satisfied: httpx<1,>=0.27.0 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from pbs-installer[download,install]<2026.0.0,>=2025.1.6->poetry>=2.0) (0.28.1)
Requirement already satisfied: anyio in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from httpx<1,>=0.27.0->pbs-installer[download,install]<2026.0.0,>=2025.1.6->poetry>=2.0) (4.12.0)
Requirement already satisfied: certifi in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from httpx<1,>=0.27.0->pbs-installer[download,install]<2026.0.0,>=2025.1.6->poetry>=2.0) (2025.11.12)
Requirement already satisfied: httpcore==1.* in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from httpx<1,>=0.27.0->pbs-installer[download,install]<2026.0.0,>=2025.1.6->poetry>=2.0) (1.0.9)
Requirement already satisfied: idna in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from httpx<1,>=0.27.0->pbs-installer[download,install]<2026.0.0,>=2025.1.6->poetry>=2.0) (3.11)
Requirement already satisfied: h11>=0.16 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from httpcore==1.*->httpx<1,>=0.27.0->pbs-installer[download,install]<2026.0.0,>=2025.1.6->poetry>=2.0) (0.16.0)
Requirement already satisfied: charset_normalizer<4,>=2 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from requests<3.0,>=2.26->poetry>=2.0) (3.4.4)
Requirement already satisfied: zipp>=3.20 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from importlib-metadata>=4.6->build<2.0.0,>=1.2.1->poetry>=2.0) (3.23.0)
Requirement already satisfied: distlib<1,>=0.3.7 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from virtualenv>=20.26.6->poetry>=2.0) (0.4.0)
Requirement already satisfied: exceptiongroup>=1.0.2 in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from anyio->httpx<1,>=0.27.0->pbs-installer[download,install]<2026.0.0,>=2025.1.6->poetry>=2.0) (1.3.1)
Requirement already satisfied: more-itertools in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from jaraco.classes->keyring<26.0.0,>=25.1.0->poetry>=2.0) (10.8.0)
Requirement already satisfied: backports.tarfile in e:\pythonproject\homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\lib\site-packages (from jaraco.context->keyring<26.0.0,>=25.1.0->poetry>=2.0) (1.2.0)
(venv) E:\pythonProject\Homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual>poetry --version
'poetry' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

解决方案

你遇到的问题非常清晰:

  • Poetry 已通过 pip 成功安装到虚拟环境pip list 显示 2.2.1);
  • 但命令行无法识别 poetry 命令,提示“不是内部或外部命令”。

这说明:虚拟环境的 Scripts 目录未被加入当前会话的 PATH,或者 shell 没有正确加载它。


🔍 根本原因(Windows + PowerShell/CMD)

在 Windows 上,pip install poetry 会把可执行文件放在:

venv\Scripts\poetry.exe

但只有在 虚拟环境被正确激活 后,系统才会把 venv\Scripts 加入 PATH

你看到 (venv) 提示符,不代表 PATH 一定生效了 —— 尤其是在 PowerShell 中,如果执行策略限制或激活脚本未完全运行,就可能出现“假激活”。


✅ 终极验证与解决步骤

✅ 第一步:检查 poetry.exe 是否真的存在

运行:

dir venv\Scripts\poetry.exe

你应该看到类似:

2025-12-16  10:30           100,864 poetry.exe

→ 如果存在,说明安装没问题。


✅ 第二步:用完整路径直接运行 Poetry

venv\Scripts\poetry --version

或 PowerShell:

.\venv\Scripts\poetry --version

如果这能输出版本(如 Poetry (version 2.2.1)),说明一切正常,只是 PATH 问题。


✅ 第三步:重新正确激活虚拟环境

如果你用的是 CMD
venv\Scripts\activate.bat
如果你用的是 PowerShell
# 先确保执行策略允许脚本(只需做一次)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

# 然后激活
venv\Scripts\Activate.ps1

⚠️ 注意:不要用 source venv/Scripts/activate(这是 Linux 命令)!

激活成功后,你的提示符应为:

(venv) PS E:\...\pylingual>

然后运行:

poetry --version

应该就能正常工作了。


✅ 第四步:如果仍失败 → 手动检查 PATH

在 PowerShell 中运行:

$env:PATH -split ';'

查看输出中是否包含:

E:\pythonProject\Homework\...\pylingual\venv\Scripts

如果没有,说明激活脚本没生效。


🛠️ 临时 workaround(不推荐长期使用)

你可以手动将 Scripts 目录加入 PATH(仅当前会话):

PowerShell:

$env:PATH = "E:\pythonProject\Homework\python-exe-unpacker\python-exe-unpacker-master\pylingual\pylingual\venv\Scripts;" + $env:PATH
poetry --version

CMD:

set PATH=E:\pythonProject\Homework\...\venv\Scripts;%PATH%
poetry --version

⚠️ 强烈建议:改用官方方式安装 Poetry(避免未来问题)

虽然你现在能用,但 Poetry 官方明确反对通过 pip 安装,因为:

  • 容易与项目依赖冲突;
  • 升级困难;
  • 可能导致虚拟环境损坏。

正确安装方式(全局、独立):

在 PowerShell 中运行:

(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -

然后 关闭并重新打开终端,之后无论是否在虚拟环境中,都可以直接使用:

poetry --version

安装后,你可以安全地卸载 venv 中的 poetry:

pip uninstall poetry poetry-core

✅ 总结

问题 解决方案
poetry 命令找不到 虚拟环境未正确激活
验证安装是否成功 运行 .\venv\Scripts\poetry --version
正确激活 venv CMD: venv\Scripts\activate PowerShell: venv\Scripts\Activate.ps1
长期使用建议 用官方脚本全局安装 Poetry

现在,请按以下顺序操作:

# 1. 重新激活(PowerShell)
.\venv\Scripts\Activate.ps1

# 2. 测试
poetry --version

# 3. 如果成功,考虑改用官方安装方式(更稳定)

如果仍有问题,请告诉我你用的是 CMD 还是 PowerShell,以及运行 .\venv\Scripts\poetry --version 的结果。

安装成功后加入环境

C:\Users\kamo\AppData\Roaming\Python\Scripts


PS C:\Users\kamo> (Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -
Retrieving Poetry metadata

# Welcome to Poetry!

This will download and install the latest version of Poetry,
a dependency and package manager for Python.

It will add the `poetry` command to Poetry's bin directory, located at:

C:\Users\kamo\AppData\Roaming\Python\Scripts

You can uninstall at any time by executing this script with the --uninstall option,
and these changes will be reverted.

Installing Poetry (2.2.1)
Installing Poetry (2.2.1): Creating environment
Installing Poetry (2.2.1): Installing Poetry
Installing Poetry (2.2.1): Creating script
Installing Poetry (2.2.1): Done

Poetry (2.2.1) is installed now. Great!

To get started you need Poetry's bin directory (C:\Users\kamo\AppData\Roaming\Python\Scripts) in your `PATH`
environment variable.

You can choose and execute one of the following commands in PowerShell:

A. Append the bin directory to your user environment variable `PATH`:

```
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "User") + ";C:\Users\kamo\AppData\Roaming\Python\Scripts", "User")
```

B. Try to append the bin directory to PATH every when you run PowerShell (>=6 recommended):

```
echo 'if (-not (Get-Command poetry -ErrorAction Ignore)) { $env:Path += ";C:\Users\kamo\AppData\Roaming\Python\Scripts" }' | Out-File -Append $PROFILE
```

Alternatively, you can call Poetry explicitly with `C:\Users\kamo\AppData\Roaming\Python\Scripts\poetry`.

You can test that everything is set up by executing:

`poetry --version`

可能报错版本问题

poetry install

Current Python version (3.10.0) is not allowed by the project (>=3.12.0).
Please change python executable via the "env use" command.

一、已经安装了 Python 3.12

E:\pycharm\python312

  1. 找到 3.12 的可执行路径 macOS/Linux 通常类似 /opt/homebrew/bin/python3.12/usr/local/bin/python3.12 Windows 类似 C:\Users\你\AppData\Local\Programs\Python\Python312\python.exe

  2. 让 Poetry 使用它

    poetry env use /opt/homebrew/bin/python3.12      # macOS/Linux
    poetry env use E:\pycharm\python312\python.exe  # Windows
    
  3. 确认

    poetry env info   # 应该看到 3.12.x
    poetry install    # 不再报错
    

二、还没装 3.12,用 pyenv 装(macOS/Linux 推荐)

# 安装 pyenv(如果还没装)
curl https://pyenv.run | bash   # 按提示把 eval "$(pyenv init -)" 写进 ~/.zshrc 或 ~/.bashrc

# 装 3.12 并设为本地/全局默认
pyenv install 3.12.3
pyenv local 3.12.3     # 只在当前项目目录生效
# 或 pyenv global 3.12.3  # 全系统默认

# 让 Poetry 识别
poetry env use $(pyenv which python)   # 自动指向 3.12
poetry install

三、Windows 没装 3.12,用官方安装包装

  1. https://www.python.org 下载 3.12 安装包,勾选 “Add python.exe to PATH”。

  2. 打开新的 PowerShell / CMD,输入

    poetry env use python3.12
    

    如果提示找不到,就写全路径:

    poetry env use C:\Users\你\AppData\Local\Programs\Python\Python312\python.exe
    
  3. poetry install

常见坑

  • 用了 poetry shell 以后才切换环境,先 exit 退出旧 shell,再 poetry shell 进新的。
  • 项目里如果已经生成过 .venv 目录,切完 Python 后建议 poetry env remove 3.10poetry install,避免残留旧解释器。
  • 如果 Poetry 版本 <1.2,先 poetry self update

照以上任一方法把环境切到 3.12 后,poetry install 就能正常跑通了

>poetry install
Installing dependencies from lock file

pyproject.toml changed significantly since poetry.lock was last generated. Run `poetry lock` to fix the lock file.

Poetry 的提示已经说得很清楚:
“pyproject.toml 相比 poetry.lock 发生了显著变化,需要重新生成锁文件。”

执行一步即可:

poetry lock --no-update   # 只重新解析并写入锁文件,不主动升级依赖

(如果你确实想顺路把依赖升到最新,则去掉 --no-update,即 poetry lock

lock 完成后重新安装:

poetry install

整个流程就干净了。

如果跑很久不出来》500s

poetry lock 的耗时没有固定值,完全取决于:

  1. 项目依赖总量(直接 + 间接) 是否第一次解析(有没有缓存)
  2. 网络状况(PyPI 源速度、是否需要大量下载 wheel/sdist 做元数据嗅探)
  3. 本地 CPU/磁盘速度(解析版本约束、构建哈希表)

经验区间(国内 200–300 Mbps、清华/阿里源):

  • 小型项目(<20 个顶层包):5–15 秒
  • 中等项目(50–100 个包):30 秒–2 分钟
  • 大型项目(>200 个包,或含大量科学栈、私有源):2–10 分钟,极端情况 20 分钟也有可能

第一次跑通常最慢,因为 Poetry 要把所有候选版本元数据拉下来做 SAT 求解;第二次若只改了几条约束,会复用缓存,几秒到几十秒就能完成。

加速小技巧

  • 改用国内源:
    poetry config repositories.pypi https://pypi.tuna.tsinghua.edu.cn/simple
    
  • 如果只想验证锁文件而不真正下载包,可加 --no-update(仅重写锁文件,不联网升级),速度会快很多。
  • 确保 ~/.cache/pypoetry 所在磁盘不是网络挂载,否则 IO 会拖慢。

只要终端还在转圈、CPU 占用正常,就让它跑完;Ctrl-C 中断后下次会重新来。