【问题标题】:Every Python-related executable broken: "Fatal Python error: init_import_size: Failed to import the site module"每个与 Python 相关的可执行文件都损坏了:“致命的 Python 错误:init_import_size:无法导入站点模块”
【发布时间】:2021-01-11 15:57:48
【问题描述】:

我对 python 非常陌生,尤其是它的生态系统。今天,我试图从我的命令行中调用一个昨天运行良好的 python 命令,但是今天我得到了以下致命错误:

Fatal Python error: init_import_size: Failed to import the site module
Python runtime state: initialized
ModuleNotFoundError: No module named 'site'

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

在尝试查找问题时,我很快意识到这对我的命令来说并不特殊。事实上,无论我在文件系统中的哪个位置,从任何命令提示符调用所有与 python 相关的可执行文件都会产生相同的错误。 pythonpython3anaconda(及其提示),condapippip3,......所有这些突然不再起作用了。它们都失败并显示相同的错误消息,只有线程正在改变。

在我的研究中,我经常发现一个非常相似的错误,但它与 encodings 模块有关。此外,我还没有读到整个 python 生态系统刚刚崩溃的问题。

上述类似错误的解决方案似乎包括使用 PYTHONPATHPYTHONHOME 环境如果它们存在。但我没有它们,既不是用户变量也不是系统变量。

我通过 scoop 安装 anaconda3 来安装 python。它应该是最新版本(2020.11)。我一直在使用PyCharm 内部的安装以及通过命令行。

有谁知道这可能是什么问题?我有点卡在这里,因为我什至不能使用 conda 或 pip 进行诊断,比如调用 conda list 以了解有关 site 包状态的更多信息。所以,如果有人能帮我解决这个问题,我将非常感激!

【问题讨论】:

  • 创建这些环境变量并没有什么坏处。大多数安装不会为您自动创建它们,因此在设置新的 Python 环境时,创建这些环境变量是非常常见的——即使我会说是标准的。
  • 感谢您的评论!根据我的阅读,人们说这些环境变量(有时由 anaconda 创建)是在虚拟环境中工作时发生此错误的原因。这就是为什么我到目前为止还没有设置它们。但我可以试一试。他们必须指向哪里?
  • 很好,我只是想排除这种可能性。不幸的是,除了完全重新安装 Anaconda 之外,我无法提供任何建议。
  • @MattThompson 这确实有效,但我不知道为什么。我有点不想将此作为答案发布,因为这并不是真正的解决方案。另外,我不知道这是否会再次发生。
  • @MattThompson 伙计,我已经开始爱上 python了……不过,谢谢你的帮助!

标签: python pip conda


【解决方案1】:

我有一个类似的问题,我无法在 anaconda Scripts 文件夹中使用任何命令。 anaconda 新安装使用的是 Python 3.8,而我为 Python 3.9 的路径设置了系统变量 PYTHONPATH。我的解决方案是删除 PYTHONPATH 系统变量,anaconda 导航器再次工作。

【讨论】:

  • “上述类似错误的解决方案似乎包括对 PYTHONPATH 和 PYTHONHOME 环境(如果存在)执行某些操作。但我没有它们,既不是用户变量,也不是系统变量。”
【解决方案2】:

这件事也发生在我身上。当我第一次运行它而不导入模块然后添加模块并再次运行时,它会自动修复。对我来说是时间模块

【讨论】:

  • 它在技术上不是一个答案,而是应该作为评论发布,我知道你现在不能这样做,但等待到达那里。
  • 这不是解决问题的办法。
【解决方案3】:

我遇到了这个错误。

对我来说,我有一些项目树(虚构):

doc/
├── project/
│   ├── embedded/
|   |   ├── __init__.py
│   │   ├── deep_file
│   │   └── utils/
│   │       └── os.py # < This one! Look here!!
│   │       └── deep/
│   │           └── folder/
│   │               └── very_deep_file
│   └── less_deep_file
|...

在这棵树中,我有一个名为 .../utils/os.py 的文件。

Pycharm 调试模式会找到这个os.py 并使用它来代替the default os.py。为了解决这个问题,我将os.py重命名为别的东西。

我真是个笨蛋!希望这可以节省其他人的时间和头痛!

【讨论】:

    猜你喜欢
    • 2021-10-30
    • 2023-02-13
    • 2022-01-25
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多