【问题标题】:Pipenv could not find platform independent libraries <prefix>Pipenv 找不到与平台无关的库 <prefix>
【发布时间】:2022-08-18 21:46:27
【问题描述】:

很奇怪的问题。虽然 python 和工作得很好,但我不能使用 pipenv。 我在 windows 上运行它,它在 windows 终端、powershell、vscode 终端上不起作用。 Python版本是3.10.5,系统PATH已经有了python.exe所在的文件夹位置。我也尝试添加 PYTHONPATH 和 PYTHONHOME 变量,但仍然没有工作。

我对此还是新手,我尝试了 pip uninstall pipenv、virtualenv,但是当我运行 pipenv 时,它仍然给我相同的错误消息,而不是“不被识别为命令”错误。

这是我运行 pipenv --version、pipenv shell、pipenv install 等时的错误消息:

Could not find platform independent libraries <prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Python path configuration:
  PYTHONHOME = (not set)
  PYTHONPATH = (not set)
  program name = \'c:/program files/inkscape/bin/python.exe\'
  isolated = 0
  environment = 1
  user site = 1
  import site = 1
  sys._base_executable = \'C:\\\\program files\\\\inkscape\\\\bin\\\\python.exe\'
  sys.base_prefix = \'D:\\\\a\\\\_temp\\\\msys\\\\msys64\\\\mingw64\'
  sys.base_exec_prefix = \'C:\\\\program files\\\\inkscape\'
  sys.executable = \'C:\\\\program files\\\\inkscape\\\\bin\\\\python.exe\'
  sys.prefix = \'D:\\\\a\\\\_temp\\\\msys\\\\msys64\\\\mingw64\'
  sys.exec_prefix = \'C:\\\\program files\\\\inkscape\'
  sys.path = [
    \'D:\\\\a\\\\_temp\\\\msys\\\\msys64\\\\mingw64\\\\lib\\\\python38.zip\',
    \'D:\\\\a\\\\_temp\\\\msys\\\\msys64\\\\mingw64\\\\lib\\\\python3.8\',
    \'D:\\\\a\\\\_temp\\\\msys\\\\msys64\\\\mingw64\\\\lib\\\\python3.8\',
    \'C:\\\\program files\\\\inkscape\\\\lib\\\\python3.8\\\\lib-dynload\',
  ]
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named \'encodings\'

Current thread 0x00006e4c (most recent call first):
<no Python frame>

我认为inkscape是问题所在,所以我卸载了它,但它仍然无法正常工作。

请帮帮我,谢谢

    标签: python windows libraries pipenv pythonpath


    【解决方案1】:

    我可能无法回答您的问题,但我可能会为解决方案做出贡献:

    1.尝试在这里找到为什么会出现 ModuleNotFoundError: No module named 'encodings' 你错过了什么图书馆? 2. 在这里查看这个较旧的线程,它可能会有所帮助:ImportError: No module named 'encodings' 3. 我曾经在我的 Jupiter 终端中使用 Pipenv,由于同事的工程选择,我总是遇到问题,所以决定搬到 Poetry 看看真的很好:https://python-poetry.org/

    我可能没有帮助您找到答案,但希望能做出一点贡献……所有调试都像刑事调查一样,有时您需要逐步获取新证据来解决犯罪问题,所以..期望自己有足够的耐心,不要得到很容易失望!

    【讨论】:

      【解决方案2】:

      这就是我的答案: 长话短说,我从 Microsoft Store 卸载了 python,重新启动计算机,使用 python.org 的 python 3.10.5 安装程序安装,确保选中“将 python 添加到 PATH”复选框,重新启动计算机。在终端上,运行“which python”并确保它在正确的路径上,应该是“c:\users\ [username]\appdata\local\programs\python\python310\python”而不是“c:\程序文件\windowsapp ....”这应该在变量“PATH”的用户变量和系统变量上 我咨询了一位程序员朋友,他帮我解决了这个问题。 这是为遇到与我在 Windows 上遇到的类似问题的任何人进行故障排除的过程:

      1. 查找系统使用的是哪个python、pip和pipenv(windows终端、powershell、cmd提示符等不同的终端可能会有不同的结果,所以就用你最喜欢的那个,对我来说是我修改的windows终端)。这里的错误代码只告诉我症状,而不是实际问题。所以追求“未找到编码模块”实际上是跳进了兔子洞。幸运的是,我从经验中意识到编码不是问题,而是终端无法识别 python 或 pipenv 在哪里。 (我确实意识到,当模块或 cmd 无法识别时,终端通常会说“模块无法识别”而不是这个长长的错误提示。所以对我来说仍然是一个谜,为什么它这样做而不是简单的“模块未识别”。
        • “Which python”显示使用的默认python安装,“python -V”显示它关联的python和位置,“pip show certifi”用于显示使用哪个python pip
        1. 我发现了一个差异,我的大部分模块都使用 appdata,而这通常是 pip 安装和 python.org 安装程序使用的地方。但是 python 使用的是 WindowsApp,因为我使用 microsoft store 安装了它。 (在我看来,当你使用谷歌 python 安装程序时,大多数指南会告诉你从微软商店安装,这是一个新手错误)
        2. 在 windows 的“添加或删除程序”中卸载你不想要的 python。然后在其网站上安装 python 并确保选中将新安装的 python 添加到系统环境变量的复选框。看看它是否在终端上工作。通常,计算机需要重新启动才能进行必要的更改。
        3. 完成!如果它不起作用,请确保清除计算机上的所有 python,直接从 python 网站使用安装程序进行安装,并确保将 python 路径添加到环境变量中

      【讨论】:

        猜你喜欢
        • 2013-10-18
        • 2013-01-10
        • 2019-12-18
        • 2015-01-24
        • 2019-08-13
        • 2013-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多