首页 > 解决方案 > Pycharm 无法检测图形环境

问题描述

我是在这里提问的新手,并且是新手 linux 用户,所以要温柔:)

我正在尝试在远程 Ubunto (18.04.2 LTS (Bionic Beaver)) 机器上运行 Pycharm Professional,并在我的本地 Windows 10 Home 计算机上打开它。我知道您可以将您的 python 解释器配置为通过 SSH 在远程服务器上运行,但我想尝试将 python 文件放在远程服务器上,并且只显示在我的本地笔记本电脑上。

我在远程服务器上安装了 pycharm 专业版,当我运行时

pycharm-professional

它打印出来:

OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.

Startup Error: Unable to detect graphics environment

我查找了类似的问题,发现我应该首先使用这一行:

export DISPLAY=:0

但是当我再次运行时,它失败了:

    OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.

Start Failed: Failed to initialize graphics environment

java.awt.AWTError: Can't connect to X11 window server using ':0' as the value of the DISPLAY variable.
        at java.desktop/sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
        at java.desktop/sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:102)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.desktop/sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:61)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:315)
        at java.desktop/java.awt.GraphicsEnvironment$LocalGE.createGE(GraphicsEnvironment.java:101)
        at java.desktop/java.awt.GraphicsEnvironment$LocalGE.<clinit>(GraphicsEnvironment.java:83)
        at java.desktop/java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:129)
        at java.desktop/sun.awt.X11.XToolkit.<clinit>(XToolkit.java:231)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:315)
        at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:588)
        at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:583)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.desktop/java.awt.Toolkit.getDefaultToolkit(Toolkit.java:582)
        at java.desktop/java.awt.Toolkit.getEventQueue(Toolkit.java:1499)
        at java.desktop/java.awt.EventQueue.invokeLater(EventQueue.java:1318)
        at com.intellij.idea.StartupUtil.lambda$scheduleInitUi$9(StartupUtil.java:325)
        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)

-----
JRE 11.0.8+10-b944.31 amd64 by JetBrains s.r.o.
/snap/pycharm-professional/213/jbr
2020-09-12 15:09:18,916 [     75]  ERROR - llij.ide.plugins.PluginManager - null
java.lang.ExceptionInInitializerError
        at java.prefs/java.util.prefs.FileSystemPreferencesFactory.userRoot(FileSystemPreferencesFactory.java:41)
        at java.prefs/java.util.prefs.Preferences.userRoot(Preferences.java:457)
        at com.intellij.ide.Prefs.migrate(Prefs.java:123)
        at com.intellij.ide.Prefs.get(Prefs.java:24)
        at com.intellij.ide.gdpr.EndUserAgreement.getAcceptedVersion(EndUserAgreement.java:81)
        at com.intellij.ide.gdpr.EndUserAgreement.access$100(EndUserAgreement.java:23)
        at com.intellij.ide.gdpr.EndUserAgreement$Document.isAccepted(EndUserAgreement.java:210)
        at com.intellij.idea.StartupUtil.showUserAgreementAndConsentsIfNeeded(StartupUtil.java:785)
        at com.intellij.idea.StartupUtil.startApp(StartupUtil.java:265)
        at com.intellij.idea.StartupUtil.prepareApp(StartupUtil.java:243)
        at com.intellij.ide.plugins.MainRunner.lambda$start$0(MainRunner.java:47)
        at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.IllegalStateException: Shutdown in progress
        at java.base/java.lang.ApplicationShutdownHooks.add(ApplicationShutdownHooks.java:66)
        at java.base/java.lang.Runtime.addShutdownHook(Runtime.java:216)
        at java.prefs/java.util.prefs.FileSystemPreferences$4.run(FileSystemPreferences.java:457)
        at java.prefs/java.util.prefs.FileSystemPreferences$4.run(FileSystemPreferences.java:455)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.prefs/java.util.prefs.FileSystemPreferences.<clinit>(FileSystemPreferences.java:455)
        ... 12 more
2020-09-12 15:09:18,920 [     79]  ERROR - llij.ide.plugins.PluginManager - PyCharm 2020.2.1  Build #PY-202.6948.78
2020-09-12 15:09:18,920 [     79]  ERROR - llij.ide.plugins.PluginManager - JDK: 11.0.8; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o.
2020-09-12 15:09:18,920 [     79]  ERROR - llij.ide.plugins.PluginManager - OS: Linux

Start Failed: Internal error. Please refer to http://jb.gg/ide/critical-startup-errors

java.lang.ExceptionInInitializerError
        at 
java.prefs/java.util.prefs.FileSystemPreferencesFactory.userRoot(FileSystemPreferencesFactory.java:41)
        at java.prefs/java.util.prefs.Preferences.userRoot(Preferences.java:457)
        at com.intellij.ide.Prefs.migrate(Prefs.java:123)
        at com.intellij.ide.Prefs.get(Prefs.java:24)
        at com.intellij.ide.gdpr.EndUserAgreement.getAcceptedVersion(EndUserAgreement.java:81)
        at com.intellij.ide.gdpr.EndUserAgreement.access$100(EndUserAgreement.java:23)
        at com.intellij.ide.gdpr.EndUserAgreement$Document.isAccepted(EndUserAgreement.java:210)
        at com.intellij.idea.StartupUtil.showUserAgreementAndConsentsIfNeeded(StartupUtil.java:785)
        at com.intellij.idea.StartupUtil.startApp(StartupUtil.java:265)
        at com.intellij.idea.StartupUtil.prepareApp(StartupUtil.java:243)
        at com.intellij.ide.plugins.MainRunner.lambda$start$0(MainRunner.java:47)
        at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.IllegalStateException: Shutdown in progress
        at java.base/java.lang.ApplicationShutdownHooks.add(ApplicationShutdownHooks.java:66)
        at java.base/java.lang.Runtime.addShutdownHook(Runtime.java:216)
        at java.prefs/java.util.prefs.FileSystemPreferences$4.run(FileSystemPreferences.java:457)
        at java.prefs/java.util.prefs.FileSystemPreferences$4.run(FileSystemPreferences.java:455)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.prefs/java.util.prefs.FileSystemPreferences.<clinit>(FileSystemPreferences.java:455)
        ... 12 more

-----
JRE 11.0.8+10-b944.31 amd64 by JetBrains s.r.o.
/snap/pycharm-professional/213/jbr

如果有人知道我在这里做错了什么,我会很高兴在这里:) 如果缺少任何细节,请告诉我。提前致谢 :)

编辑:在@Kenster 的回答之后,我被介绍了 X 转发的概念。我按照此链接中的说明进行操作,效果很好。X转发是什么也有一个清晰的解释。链接:https ://kb.iu.edu/d/bdnt

标签: sshpycharmremote-server

解决方案


推荐阅读