【问题标题】:'Cannot setup a Python SDK' in PyCharm project using virtualenv after OS reinstallation重新安装操作系统后使用 virtualenv 在 PyCharm 项目中“无法设置 Python SDK”
【发布时间】:2023-04-05 05:25:01
【问题描述】:

我重新安装了 Windows 并打开了一个现有的 Pycharm 项目,并在“设置”>“项目解释器”中收到错误“SDK 似乎无效”。

项目解释器路径指向venv中的python:

MyProject\venv\Scripts\python.exe

我尝试重新添加 python.exe:

那是我收到错误的时候:

更新:这是来自idea.log的错误,虚拟环境的许多其他问题似乎与Windows环境变量和系统路径有关:

2018-09-28 19:50:40,275 [  17601]   INFO - hon.packaging.PyPIPackageCache - Loaded 153296 packages from C:\Users\Matt\.PyCharm2018.2\system\python_packages\pypi-cache.json 
2018-09-28 19:50:40,816 [  18142]   INFO - rains.python.sdk.PythonSdkType - Fatal Python error: Py_Initialize: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00000fa8 (most recent call first):

Exit code -1073740791 
2018-09-28 19:50:40,816 [  18142]  ERROR - ns.python.sdk.PythonSdkUpdater - Failed to determine Python's sys.path value:
STDOUT: 
STDERR: Fatal Python error: Py_Initialize: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00000fa8 (most recent call first):

com.jetbrains.python.sdk.InvalidSdkException: Failed to determine Python's sys.path value:
STDOUT: 
STDERR: Fatal Python error: Py_Initialize: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'

【问题讨论】:

  • 我认为虽然我使用的是 Python 的虚拟环境版本,但不确定是否必须为此设置 Windows 路径。
  • 好的,我找到了另一个符合您症状的可能原因。
  • 你能用新的venv创建一个新项目,然后将旧项目中的文件复制到新项目中吗?

标签: python pycharm virtualenv


【解决方案1】:

解决方案是什么:查看venv\pyvenv.cfg并提供基本python安装的有效路径。

最有可能发生的事情: 重新安装操作系统后,您没有重新安装 base python 解释器,或者您将它安装在与以前不同的位置。因此,您的虚拟环境无法找到 python 安装。虚拟环境意味着所有库和设置都与其他项目隔离。它提供独立的 python 安装。您仍然需要用于创建 venv 的基础 python。

我的情况:我在网络共享中有一个项目,并尝试从不同的计算机访问它。基本的 python 路径取决于 PC。上面的解决方案对我来说很好。不幸的是,我需要根据使用的 PC 更新 pyvenv.cfg

P.S. 我相信有一个环境变量可以覆盖 venv 配置值。我只尝试在 Windows 上 set PYTHONPATH=C:\Anaconda3\envs\python37 然后激活 venv。没有效果,我放弃了。

【讨论】:

    【解决方案2】:

    当我遇到完全相同的问题时,这就是解决我的问题的方法

    导航到Project Interpreter,选择框右侧,点击齿轮图标,会显示两个选项add & show all。

    单击全部显示,如果您从同一目录中看到以前的存在,请删除它。单击添加或+ 符号以添加新解释器并导航到您的project path,向下导航到虚拟环境目录。

    venv/bin/{选择带有版本代码的python可执行文件,即如果您使用的是python3.6,请选择python3.6}

    选择后,您现在可以点击install packaging tools 的通知,点击应用并完成。

    【讨论】:

    • 在我的例子中,我从“显示全部”视图中删除了[invalid] python interpreter,删除了 venv 文件夹并使用新的解释器再次创建了 venv
    • 这就是我为互联网付费的原因!
    【解决方案3】:

    很可能,PyCharm 尝试使用的某些 Python 环境路径在某处变得无效。有(至少)两个主要嫌疑人:

    PyCharm 设置中 virtualenv 的路径

    PyCharm 需要知道您的环境的路径才能在其中运行。所以,如果那个路径改变了,PyCharm 保存的路径就失效了。

    File->Settings...->Project interpreter->(Gear icon)->Show all...中转到您项目的解释器设置:

    然后删除并重新创建必要的条目。或者编辑它们并指定正确的路径。 例如。这是我删除 Anaconda 安装后的列表:

    virtualenv 中到其基础安装的路径

    由于 virtualenv 不是完整安装,它必须有一个基本安装的路径存储在某个地方才能使用那里的文件。

    在撰写本文时,Windows 中的virtualenv (v16.0.0) 是这样实现的:

    • 真正的python.exe 和其他几个文件被复制到 virtualenv 的子树中
    • Lib\orig-prefix.txt 中,存储了基本安装的路径。它用于通过自定义site.py 将基本安装的Lib 添加到sys.path

    因此,如果该文件中的路径无效,则 virtualenv 的 Python 解释器将无法找到任何标准模块,除了那些被复制的少数模块。完全符合您的症状。

    【讨论】:

    • 我重新安装了windows,所以所有的设置都会被删除,还是在项目目录中?我只是将项目文件夹复制并粘贴到磁盘上,然后在 PyCharm 中打开项目。
    • @el_pup_le AFAICS 解释器环境设置是全局的,所以它们必须在%USERPROFILE%\.PyCharm<version> 中。如果您在重新安装过程中没有擦除您的用户个人资料,他们就会幸免于难。
    • 我重新安装了windows,所以这一定不是解决方案
    • 项目文件夹中的 pycache 或 .idea 文件夹呢?
    • 此外,当您移动虚拟环境时也会发生这种情况。是的,它根本不是为移动而设计的,您必须重新创建一个通常不麻烦的虚拟环境。
    【解决方案4】:

    我目前有同样的问题,我无法在 Pycharm 中安装任何软件包工具,这让我很害怕。这是我修复它的步骤,只是想分享。哦。

    第 1 步

    在设置图标的右上角找到全部显示

    第 2 步

    点击+图标打开添加python解释器

    第 3 步

    在 Virtualenv Environment 下的 New environment 的 Location 中选择文件

    第 4 步

    找到你的 Pycharm 文件并在其下创建一个空文件并单击 OK 并保持单击 OK

    第 5 步

    现在在 Project Interpreter 中选择您刚刚创建的空文件,现在您应该可以安装 Pycharm 包了。希望这能解决您的问题。

    【讨论】:

      【解决方案5】:

      上面没有对我有用

      我做了一个简单的改变,希望它也对你有用!

      这是由于存储 python.exe 的冲突而发生的,在我的情况下它是在 F:\ 驱动器中

      解决方案:- Pycharm 期望 python.exe 文件存在于某个位置,您可以在项目解释器中检查,它会显示 pycharm 正在搜索执行 exe 文件的一些默认位置,但是问题是该位置不存在 exe 文件,因此请创建 pycharm 期望执行 exe 文件的文件夹并粘贴下载的 exe 文件

      希望对你有用!!

      快乐编码

      【讨论】:

        【解决方案6】:

        好吧,我对 Python 还很陌生,我也确实在崩溃后重新安装了我的操作系统

        旧设置: 在旧系统设置中,我使用了 python 3.7.4。我用它制作了我的所有(实践)项目,每个项目都有一个 venv/scripts/python3.7.exe ......我的理解是/是这些虚拟环境中的所有文件都“独立”,足以为该特定项目文件运行 python 3.7.4,而不依赖于 home-python-dir 的文件。 python的安装目录是c:\Program Files (x86)\python 37-32

        每个项目都有一个文件 [project-path]/venv/pyvenv.cfg,在这个文件中有一行 主页 = C:\Program Files (x86)\Python37-32

        然后 - 我的系统崩溃了 - 重新安装了 windows 10,并再次下载了 python,但这次是 python 3.8,它安装在 C:\Program Files (x86)\Python38-32

        新设置: 因此,在失去了一些头发之后 - 我还在 pyenv.cfg 文件中指定的特定路径(C:\Program Files (x86)\Python37-32)中安装了旧的 python 版本 3.7.4。所以,我在我的新系统上安装了 2 个 python 版本,一个在 .../python38-32 中,一个在 .../python37-32

        这很有效,所以当我选择“添加解释器/现有解释器”并指向 [project]/venv/python3.7.exe 时,它​​就像一个魅力。

        因此,pycharm/python 需要的每个特定版本的主目录中都有文件 - 我的印象是 .venv 目录中的文件将是它所需要的全部......

        【讨论】:

          【解决方案7】:

          当我切换在不同位置安装了不同 python 版本的系统时,我遇到了这个问题。简单的简短解决方案是打开“pyenv”文件并将其指向当前系统中的当前安装路径,就是这样。

          【讨论】:

            【解决方案8】:

            我有同样的问题,但无法真正弄清楚。 由于这是一个附带项目,这个错误同时令人愤怒和搞笑。

            我的文件夹名称包含非英文字母。特别是它有字母“đ”,因此SDK总是无效。

            你可能会说这是一个愚蠢的错误,但我并没有真正注意。 希望这对某人有所帮助。

            【讨论】:

              【解决方案9】:

              当我尝试使用除 python.exe 之外的任何名称的 exe 构建新环境时,我在 Pycharm 2021.2.3 中遇到问题(我通过调用它们来组织我的不同版本 python39.exepython38.exe 等.)。我刚刚停止这样做,并将我所有的 python exe 重命名为 python.exe 并开始工作。

              【讨论】:

                【解决方案10】:

                在我的情况下,问题是因为我使用 WSL 来托管我的项目,所以 PyCharm 用于创建和选择 venv 的项目地址是错误的。而不是使用选项Virtualenv Environment 来创建环境:

                您需要从侧边栏中选择 WSL 选项,然后输入新的或现有 venv 的路径。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2018-07-13
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2020-08-24
                  • 1970-01-01
                  相关资源
                  最近更新 更多