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

Python3.7环境下pipenv lock执行失败,求解决方案

Pipenv lock失败问题解决(Python 3.7环境)

问题现象

使用pipenv shell --python 3.7创建Python 3.7虚拟环境后,执行pipenv lock命令触发RuntimeError: Failed to lock Pipfile.lock!错误,核心报错为:

ImportError: cannot import name 'cached_property' from 'functools' (C:\Users\mihaj\AppData\Local\Programs\Python\Python37\lib\functools.py)

当前Pipfile内容:

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
flask = "*"

[dev-packages]

[requires]
python_version = "3.7"
python_full_version = "3.7.0"

完整报错回溯:

PS D:\freelance\apb-master\flaskdir>pipenv --version
pipenv, version 2024.1.0
PS D:\freelance\apb-master\flaskdir>python -V
Python 3.7.0
PS D:\freelance\apb-master\flaskdir>pipenv lock --verbose 
Locking [packages] dependencies...
Locking [dev-packages] dependencies...
Building requirements...
Resolving dependencies...
Traceback (most recent call last):
  File "C:/Users/mihaj/AppData/Local/Programs/Python/Python312/Lib/site-packages/pipenv/resolver.py", line 6, in <module>
    from functools import cached_property
ImportError: cannot import name 'cached_property' from 'functools' (C:\Users\mihaj\AppData\Local\Programs\Python\Python37\lib\functools.py)
Locking Failed!
[    ] Locking dev-packages...
Traceback (most recent call last):                                                                                                                                                                                                        
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Users\mihaj\AppData\Local\Programs\Python\Python312\Scripts\pipenv.exe\__main__.py", line 7, in <module>
    # when invoked as python -m pip <command>
                 ^^^^^
  File "C:\Users\mihaj\AppData\Local\Programs\Python\Python312\Lib\site-packages\pipenv\vendor\click\core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\mihaj\AppData\Local\Programs\Python\Python312\Lib\site-packages\pipenv\cli\options.py", line 52, in main
    return super().main(*args, **kwargs, windows_expand_args=False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\mihaj\AppData\Local\Programs\Python\Python312\Lib\site-packages\pipenv\vendor\click\core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "C:\Users\mihaj\AppData\Local\Programs\Python\Python312\Lib\site-packages\pipenv\vendor\click\core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\mihaj\AppData\Local\Programs\Python\Python312\Lib\site-packages\pipenv\vendor\click\core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\mihaj\AppData\Local\Programs\Python\Python312\Lib\site-packages\pipenv\vendor\click\core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\mihaj\AppData\Local\Programs\Python\Python312\Lib\site-packages\pipenv\vendor\click\decorators.py", line 92, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\mihaj\AppData\Local\Programs\Python\Python312\Lib\site-packages\pipenv\vendor\click\core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\mihaj\AppData\Local\Programs\Python\Python312\Lib\site-packages\pipenv\vendor\click\decorators.py", line 33, in new_func
    return f(get_current_context(), *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\mihaj\AppData\Local\Programs\Python\Python312\Lib\site-packages\pipenv\cli\command.py", line 342, in lock
    do_lock(
  File "C:\Users\mihaj\AppData\Local\Programs\Python\Python312\Lib\site-packages\pipenv\routines\lock.py", line 67, in do_lock
    venv_resolve_deps(
  File "C:\Users\mihaj\AppData\Local\Programs\Python\Python312\Lib\site-packages\pipenv\utils\resolver.py", line 859, in venv_resolve_deps
    c = resolve(cmd, st, project=project)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\mihaj\AppData\Local\Programs\Python\Python312\Lib\site-packages\pipenv\utils\resolver.py", line 723, in resolve
    raise RuntimeError("Failed to lock Pipfile.lock!")
RuntimeError: Failed to lock Pipfile.lock!

已尝试过降级pipenv,但问题未解决。

问题原因

functools.cached_property是Python 3.8及以上版本才新增的特性,你使用的Pipenv 2024.1.0版本依赖该特性,但当前虚拟环境为Python 3.7,导致导入失败。此外,你的Pipenv安装在Python 3.12环境下,运行时会调用虚拟环境内的Python 3.7库,进一步触发版本不兼容问题。

解决步骤

  • 卸载当前Pipenv
    执行命令完全卸载现有版本:

    pip uninstall pipenv -y
    
  • 安装兼容Python 3.7的Pipenv版本
    选择支持Python 3.7的Pipenv版本(如2023.10.24),用Python 3.7直接安装:

    python3.7 -m pip install pipenv==2023.10.24
    
  • 重新初始化虚拟环境
    删除现有虚拟环境和Pipfile.lock(如果存在),然后重新创建:

    rm -rf .venv
    rm Pipfile.lock
    pipenv shell --python 3.7
    
  • 执行lock命令
    进入虚拟环境后,重新执行:

    pipenv lock
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 18:14:54