gpt4 book ai didi

python - 将 Poetry 与 PyEnv 一起使用并遇到 Python 版本问题

转载 作者:行者123 更新时间:2023-12-04 18:54:59 25 4
gpt4 key购买 nike

我正在开发 WSL2 Ubuntu。我一直在学习使用 Fastapi 进行后端 API 开发的类(class)。我相信我的 Ubuntu 默认 python 是 3.8。我正在尝试使用 python 3.10.0 进行开发。我做了以下事情:

  • pyenv 安装 3.10.0
  • cd 到我的项目文件夹和 pyenv local 3.10.0(创建包含 3.10.0 的 .python-version 文件)
  • 诗歌外壳(这会创建一个 .venv 文件夹,并且在开发过程中会在其中添加所有依赖项)。 Bash Prompt 中有 (.venv)。
  • python --version 将 3.10.0 显示为当前版本

  • 我的问题是,当我查看 .venv/bin 文件时,所有符号链接(symbolic link)都显示 python 3.8。
    drwxr-xr-x 2 mryan mryan 4096 Feb  1 23:12 .
    drwxr-xr-x 4 mryan mryan 4096 Feb 1 23:12 ..
    -rw-r--r-- 1 mryan mryan 2152 Feb 1 23:12 activate
    -rw-r--r-- 1 mryan mryan 1444 Feb 1 23:12 activate.csh
    -rw-r--r-- 1 mryan mryan 3033 Feb 1 23:12 activate.fish
    -rw-r--r-- 1 mryan mryan 1303 Feb 1 23:12 activate.nu
    -rw-r--r-- 1 mryan mryan 1754 Feb 1 23:12 activate.ps1
    -rw-r--r-- 1 mryan mryan 1199 Feb 1 23:12 activate_this.py
    -rw-r--r-- 1 mryan mryan 333 Feb 1 23:12 deactivate.nu
    -rwxr-xr-x 1 mryan mryan 249 Feb 1 23:12 pip
    -rwxr-xr-x 1 mryan mryan 249 Feb 1 23:12 pip-3.8
    -rwxr-xr-x 1 mryan mryan 249 Feb 1 23:12 pip3
    -rwxr-xr-x 1 mryan mryan 249 Feb 1 23:12 pip3.8
    lrwxrwxrwx 1 mryan mryan 18 Feb 1 23:12 python -> /usr/bin/python3.8
    lrwxrwxrwx 1 mryan mryan 6 Feb 1 23:12 python3 -> python
    lrwxrwxrwx 1 mryan mryan 6 Feb 1 23:12 python3.8 -> python
    -rwxr-xr-x 1 mryan mryan 236 Feb 1 23:12 wheel
    -rwxr-xr-x 1 mryan mryan 236 Feb 1 23:12 wheel-3.8
    -rwxr-xr-x 1 mryan mryan 236 Feb 1 23:12 wheel3
    -rwxr-xr-x 1 mryan mryan 236 Feb 1 23:12 wheel3.8
    当我尝试使用命令poetry env use 3.10.0 时,我得到以下信息:
    (.venv) mryan ~/python/fastapi1/.venv/bin $poetry env use 3.10.0
    /bin/sh: 1: python3.10: not found

    EnvCommandError

    Command python3.10 -c "import sys; print('.'.join([str(s) for s in sys.version_info[:3]]))" errored with the following return code 127, and output:


    at ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/utils/env.py:378 in activate
    374│ shell=True,
    375│ )
    376│ )
    377│ except CalledProcessError as e:
    → 378│ raise EnvCommandError(e)
    379│
    380│ python_version = Version.parse(python_version.strip())
    381│ minor = "{}.{}".format(python_version.major, python_version.minor)
    382│ patch = python_version.text
    (.venv) mryan ~/python/fastapi1/.venv/bin $python3.10
    python3.10: command not found
    我在这里做错了什么?我觉得我在这里遗漏了一些重要的东西。我浏览过无数关于诗歌和虚拟环境的网页。

    最佳答案

    我遇到了同样的问题,我曾经能够使用:pyenv local 3.10poetry new example-projectpoetry将创建 example-project里面有一个基于python 3.10的venv。这不再对我有用,所以我发现这些命令对我有用:

    poetry new example-project
    cd example-project/
    poetry env use 3.10
    poetry update
    如果您的项目已经安装了 venv,最好在使用 poetry env 之前先删除它。命令。我很确定你没有添加 pyenv给您的 PATH适本地。查看 installation instructions对于 pyenv ,特别是“为 Pyenv 配置 shell 环境”部分。

    关于python - 将 Poetry 与 PyEnv 一起使用并遇到 Python 版本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70950511/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com