Mar*_*yan 13 python ubuntu python-venv pyenv
我正在使用 WSL2 Ubuntu。我一直在学习使用 Fastapi 进行后端 API 开发的课程。我相信我的 Ubuntu 默认 python 是 3.8。我正在尝试使用 python 3.10.0 进行开发。我做了以下事情:
\n我的问题是,当我查看 .venv/bin 文件时,所有符号链接都显示 python 3.8。
\ndrwxr-xr-x 2 mryan mryan 4096 Feb 1 23:12 .\ndrwxr-xr-x 4 mryan mryan 4096 Feb 1 23:12 ..\n-rw-r--r-- 1 mryan mryan 2152 Feb 1 23:12 activate\n-rw-r--r-- 1 mryan mryan 1444 Feb 1 23:12 activate.csh\n-rw-r--r-- 1 mryan mryan 3033 Feb 1 23:12 activate.fish\n-rw-r--r-- 1 mryan mryan 1303 Feb 1 23:12 activate.nu\n-rw-r--r-- 1 mryan mryan 1754 Feb 1 23:12 activate.ps1\n-rw-r--r-- 1 mryan mryan 1199 Feb 1 23:12 activate_this.py\n-rw-r--r-- 1 mryan mryan 333 Feb 1 23:12 deactivate.nu\n-rwxr-xr-x 1 mryan mryan 249 Feb 1 23:12 pip\n-rwxr-xr-x 1 mryan mryan 249 Feb 1 23:12 pip-3.8\n-rwxr-xr-x 1 mryan mryan 249 Feb 1 23:12 pip3\n-rwxr-xr-x 1 mryan mryan 249 Feb 1 23:12 pip3.8\nlrwxrwxrwx 1 mryan mryan 18 Feb 1 23:12 python -> /usr/bin/python3.8\nlrwxrwxrwx 1 mryan mryan 6 Feb 1 23:12 python3 -> python\nlrwxrwxrwx 1 mryan mryan 6 Feb 1 23:12 python3.8 -> python\n-rwxr-xr-x 1 mryan mryan 236 Feb 1 23:12 wheel\n-rwxr-xr-x 1 mryan mryan 236 Feb 1 23:12 wheel-3.8\n-rwxr-xr-x 1 mryan mryan 236 Feb 1 23:12 wheel3\n-rwxr-xr-x 1 mryan mryan 236 Feb 1 23:12 wheel3.8\nRun Code Online (Sandbox Code Playgroud)\n当我尝试使用命令诗歌 env use 3.10.0 时,我得到以下信息:
\n(.venv) mryan ~/python/fastapi1/.venv/bin $poetry env use 3.10.0\n/bin/sh: 1: python3.10: not found\n\n EnvCommandError\n\n 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:\n\n\n at ~/.local/share/pypoetry/venv/lib/python3.8/site-packages/poetry/utils/env.py:378 in activate\n 374\xe2\x94\x82 shell=True,\n 375\xe2\x94\x82 )\n 376\xe2\x94\x82 )\n 377\xe2\x94\x82 except CalledProcessError as e:\n \xe2\x86\x92 378\xe2\x94\x82 raise EnvCommandError(e)\n 379\xe2\x94\x82\n 380\xe2\x94\x82 python_version = Version.parse(python_version.strip())\n 381\xe2\x94\x82 minor = "{}.{}".format(python_version.major, python_version.minor)\n 382\xe2\x94\x82 patch = python_version.text\n(.venv) mryan ~/python/fastapi1/.venv/bin $python3.10\npython3.10: command not found\nRun Code Online (Sandbox Code Playgroud)\n我在这里做错了什么?我觉得我在这里错过了一些重要的东西。我浏览过无数关于诗歌和虚拟环境的网页。
\n小智 22
我遇到了与您相同的问题,我曾经能够使用:
pyenv local 3.10.0
poetry new example-project
并poetry会example-project基于 python 3.10.0 创建一个 venv。这不再对我有用,所以我发现这些命令对我有用:
poetry new example-project
cd example-project/
poetry env use 3.10.0
poetry update
Run Code Online (Sandbox Code Playgroud)
如果您的项目已经安装了 venv,那么在使用该poetry env命令之前先将其删除可能是个好主意。我很确定你没有正确添加pyenv到你的PATH。查看 的安装说明,pyenv特别是“为 Pyenv 配置 shell 环境”部分。
| 归档时间: |
|
| 查看次数: |
22683 次 |
| 最近记录: |