代码之家  ›  专栏  ›  技术社区  ›  user4601931

通过Homebrew安装Python时突然出现问题

  •  1
  • user4601931  · 技术社区  · 2 年前

    我有Python 3.12和virtualenv 20.25.0,它们都是通过Homebrew安装的。上次我使用电脑时,virtualenv运行正常。下次我尝试使用 virtualenv ,我收到了以下错误:

    > $ virtualenv --version
    Traceback (most recent call last):
      File "/usr/local/bin/virtualenv", line 5, in <module>
        from virtualenv.__main__ import run_with_catch
      File "/usr/local/lib/python3.12/site-packages/virtualenv/__init__.py", line 3, in <module>
        from .run import cli_run, session_via_cli
      File "/usr/local/lib/python3.12/site-packages/virtualenv/run/__init__.py", line 7, in <module>
        from virtualenv.app_data import make_app_data
      File "/usr/local/lib/python3.12/site-packages/virtualenv/app_data/__init__.py", line 11, in <module>
        from .read_only import ReadOnlyAppData
      File "/usr/local/lib/python3.12/site-packages/virtualenv/app_data/read_only.py", line 5, in <module>
        from virtualenv.util.lock import NoOpFileLock
      File "/usr/local/lib/python3.12/site-packages/virtualenv/util/lock.py", line 12, in <module>
        from filelock import FileLock, Timeout
    ModuleNotFoundError: No module named 'filelock'
    

    互联网恰好没有太大帮助,从成功使用virtualenv到现在,我自己什么也没做。这里可能发生了什么?

    1 回复  |  直到 2 年前
        1
  •  0
  •   phd    2 年前

    pip install virtualenv installs filelock 作为依赖项。如果Homebrew没有安装 文件锁定 这是一个公式错误。

    尝试通过安装进行修复 文件锁定 直接:

    sudo python3.12 -m pip install --break-system-packages filelock
    

    如果这没有帮助,请尝试升级的整个依赖项堆栈 virtualenv :

    sudo python3.12 -m pip install --break-system-packages --upgrade virtualenv
    

    PS。我经常建议避免 sudo 但这一次需要修复/升级安装在 /usr/local