首页 > 解决方案 > pyenv virtualenv 的 pycharm 错误:SDK 似乎无效

问题描述

在尝试选择通过 pyenv virtualenv 创建的 python bin 作为解释器时,我遇到了 pycharm 的问题。

Cannot set up a python SDK 
at Python 3.10 (remote_maax) ($HOME/.pyenv/versions/remote_maax/bin/python).
The SDK seems invalid.

我想提供更多细节,但 pycharm 不提供任何额外的输出。

更奇怪的是,我没有使用 python 3.10,virtualenv 是用 python 3.8.5 创建的。virtualenv 在使用pyenv activate. 我可以 pip 安装包并正确使用它们。

我正在通过 flatpak 安装新的 pop os 20.10 (ubuntu)、内核 5.8.0-7642-generic、pyenv 1.2.22、pycharm community 2020.3.3。

有谁知道这会导致什么?

编辑:通过从 shell 启动 pycharm 找到了更多细节

com.jetbrains.python.sdk.InvalidSdkException: Failed to determine Python's sys.path value:
STDOUT: 
STDERR: /home/gio/.pyenv/versions/remote_maax/bin/python3.8: /usr/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /home/gio/.pyenv/versions/remote_maax/bin/python3.8)

    at com.jetbrains.python.sdk.PythonSdkType.getSysPathsFromScript(PythonSdkType.java:457)
    at com.jetbrains.python.sdk.PythonSdkType.getSysPath(PythonSdkType.java:439)
    at com.jetbrains.python.sdk.PythonSdkUpdater.evaluateSysPath(PythonSdkUpdater.java:576)
    at com.jetbrains.python.sdk.PythonSdkUpdater.getLocalSdkPaths(PythonSdkUpdater.java:436)
    at com.jetbrains.python.sdk.PythonSdkUpdater.updateLocalSdkPaths(PythonSdkUpdater.java:400)
    at com.jetbrains.python.sdk.PythonSdkUpdater.updateLocalSdkVersionAndPaths(PythonSdkUpdater.java:370)
    at com.jetbrains.python.sdk.PythonSdkUpdater.lambda$updateVersionAndPathsSynchronouslyAndScheduleRemaining$0(PythonSdkUpdater.java:267)
    at com.intellij.openapi.progress.impl.CoreProgressManager$1.run(CoreProgressManager.java:275)
    at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:962)
    at com.intellij.openapi.progress.impl.CoreProgressManager$4.run(CoreProgressManager.java:520)
    at com.intellij.openapi.progress.impl.ProgressRunner.lambda$new$0(ProgressRunner.java:79)
    at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$3(ProgressRunner.java:235)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:178)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:658)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:610)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:65)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:165)
    at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:235)
    at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
    at java.base/java.lang.Thread.run(Thread.java:834)

不幸的是,我确实安装了 libc 2.32,所以现在我更加困惑了。

glibc-source/groovy,groovy,now 2.32-0ubuntu3 all [installed]
  GNU C Library: sources

libc6/groovy,now 2.32-0ubuntu3 amd64 [installed]
  GNU C Library: Shared libraries

标签: pythonubuntupycharmvirtualenvpyenv

解决方案


Pycharm 的 flatpack 版本似乎存在问题。我遇到了完全相同的问题(PopOS,Pycharm Professional 2020.3)。最后,我用独立版本替换了 flatpack 版本(我从 Jetbrains 网站下载了 Pycharm),并且在完全相同的环境中工作得很好。


推荐阅读