You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 3.11下创建Pipenv虚拟环境报错的解决咨询

问题描述

前置条件

  • Python 3.11
  • Pipenv 2022.12.19

尝试用以下命令创建Pipenv虚拟环境:

pipenv --python 3.11

或

pipenv --python /usr/bin/python3.11

执行后出现错误,完整报错信息如下:

Loading .env environment variables...
Creating a virtualenv for this project...
Pipfile: /home/dev/geotek-dev/Pipfile
Using /usr/bin/python3.11 (3.11.1) to create virtualenv...
⠇ Creating virtual environment...created virtual environment CPython3.11.1.final.0-64 in 227ms
  creator CPython3Posix(dest=/root/.local/share/virtualenvs/geotek-dev-Rxuh4rdd, clear=False, global=False)
  seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, pkg_resources=latest, via=copy, app_data_dir=/root/.local/share/virtualenv/seed-app-data/v1.0.1.debian.1)
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

✔ Successfully created virtual environment!
Traceback (most recent call last):
  File "/usr/local/bin/pipenv", line 8, in <module>
    sys.exit(cli())
             ^^^^^
  File "/usr/local/lib/python3.11/dist-packages/pipenv/vendor/click/core.py", line 1128, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/pipenv/cli/options.py", line 57, in main
    return super().main(*args, **kwargs, windows_expand_args=False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/pipenv/vendor/click/core.py", line 1053, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/pipenv/vendor/click/core.py", line 1637, in invoke
    super().invoke(ctx)
  File "/usr/local/lib/python3.11/dist-packages/pipenv/vendor/click/core.py", line 1395, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/pipenv/vendor/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/pipenv/vendor/click/decorators.py", line 84, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/pipenv/vendor/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/pipenv/vendor/click/decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/pipenv/cli/command.py", line 210, in cli
    ensure_project(
  File "/usr/local/lib/python3.11/dist-packages/pipenv/core.py", line 541, in ensure_project
    ensure_virtualenv(
  File "/usr/local/lib/python3.11/dist-packages/pipenv/core.py", line 474, in ensure_virtualenv
    do_create_virtualenv(
  File "/usr/local/lib/python3.11/dist-packages/pipenv/core.py", line 1060, in do_create_virtualenv
    project._environment = Environment(
                           ^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/pipenv/environment.py", line 79, in __init__
    self._base_paths = self.get_paths()
                       ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/pipenv/environment.py", line 383, in get_paths
    c = subprocess_run(command)
        ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/pipenv/utils/processes.py", line 75, in subprocess_run
    return subprocess.run(
           ^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/subprocess.py", line 548, in run
    with Popen(*popenargs, **kwargs) as process:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/subprocess.py", line 1024, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.11/subprocess.py", line 1901, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/root/.local/share/virtualenvs/geotek-dev-Rxuh4rdd/bin/python'

排查后发现,Python 3.11创建的虚拟环境目录结构和旧版本(比如3.9)不同:

  • Python 3.9的虚拟环境目录包含bin、lib、pyvenv.cfg
  • Python 3.11的虚拟环境目录包含lib、local、pyvenv.cfg,bin/python实际位于local目录下,而非虚拟环境根目录。

需要如何配置才能让Pipenv正常工作?


解决方案

1. 升级Pipenv到最新版本

你的Pipenv版本(2022.12.19)发布于Python 3.11正式版之后不久,存在对Python 3.11虚拟环境结构的兼容问题。升级到最新版本即可修复这个路径识别错误:

pip install --upgrade pipenv

升级完成后,重新执行创建虚拟环境的命令即可正常工作。

2. 手动指定虚拟环境的Python路径(临时 workaround)

如果暂时无法升级Pipenv,可以手动创建虚拟环境并指定正确的Python路径:

  1. 先手动用Python 3.11创建虚拟环境:
python3.11 -m venv /root/.local/share/virtualenvs/geotek-dev-Rxuh4rdd
  1. 让Pipenv关联这个已创建的虚拟环境,指定local/bin下的Python路径:
pipenv --python /root/.local/share/virtualenvs/geotek-dev-Rxuh4rdd/local/bin/python

3. 使用virtualenv创建标准结构的虚拟环境

部分Linux发行版的Python 3.11可能修改了默认虚拟环境结构,你可以用virtualenv包创建标准结构的虚拟环境,再让Pipenv使用:

  1. 安装virtualenv:
pip install virtualenv
  1. 创建标准结构的虚拟环境:
virtualenv --python=python3.11 venv
  1. 让Pipenv使用这个虚拟环境:
pipenv --python ./venv/bin/python

内容的提问来源于stack exchange,提问作者Vadim Beglov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 04:10:27