【问题标题】:Spyder on Windows Subsystem for Linux - ImportError: libGL.so.1适用于 Linux 的 Windows 子系统上的 Spyder - ImportError:libGL.so.1
【发布时间】:2017-02-26 12:04:13
【问题描述】:

我正在尝试在 Windows 10 的 bash 上启动 Spyder(Anaconda 的一部分)。(它似乎正在运行 Ubuntu 14.04.5 LTS。)输入 spyder & 时,我收到以下错误消息:

Traceback (most recent call last):
  File "/home/pmj27/anaconda2/bin/spyder", line 6, in <module>
    sys.exit(spyder.app.start.main())
  File "/home/pmj27/anaconda2/lib/python2.7/site-packages/spyder/app/start.py", line 103, in main
    from spyder.app import mainwindow
  File "/home/pmj27/anaconda2/lib/python2.7/site-packages/spyder/app/mainwindow.py", line 78, in <module>
    from qtpy.compat import from_qvariant
  File "/home/pmj27/anaconda2/lib/python2.7/site-packages/qtpy/compat.py", line 15, in <module>
    from qtpy.QtWidgets import QFileDialog
  File "/home/pmj27/anaconda2/lib/python2.7/site-packages/qtpy/QtWidgets.py", line 21, in <module>
    from PyQt5.QtWidgets import *
ImportError: libGL.so.1: cannot open shared object file: No such file or directory

有没有人知道如何处理这个问题?我意识到“Linux 的 Windows 子系统”仍处于测试版。

【问题讨论】:

    标签: windows-10 ubuntu-14.04 anaconda spyder windows-subsystem-for-linux


    【解决方案1】:

    如果其他人像我后来发现的那样发现了这种情况,以下是对我有用的类似错误消息: 我跑了sudo apt-get install qtbase5-dev(见:https://forum.qiime2.org/t/qiime2-2017-5-installation-on-windows-subsystem-for-linux/694), 在 Windows 上安装了 Xming (https://sourceforge.net/projects/xming/?source=typ_redirect),并在 .bashrc 的末尾添加了export DISPLAY=:0.0。这解决了错误,我现在可以在 WSL 上运行 Spyder。

    【讨论】:

    • 您能否提供有关如何执行这些操作的更多详细信息?具体来说,您将如何使用 Xming 并在 .bashrc 末尾添加export DISPLAY=:0.0
    【解决方案2】:

    我有同样的问题,但我还没有解决它。我会尽量回答你的问题。

    我想你和我一样在 Windows 上的 Ubuntu 上安装了 Bash。此链接中提到过 https://msdn.microsoft.com/en-us/commandline/wsl/faq Linux 的 Windows 子系统是一个 bash shell,它允许开发人员使用 Linux 命令行工具。启用 WSL(这是一项可选功能)后,机器会下载由 Canonical 创建的正版 Ubuntu 用户模式映像。 Bash.exe 应用程序在启动后会从 Ubuntu 映像加载并运行本机 Bash shell 和 Linux 命令行工具。

    我认为这意味着您的图形卡驱动程序仍在您的 Windows 系统上,因此您必须告诉您的 Ubuntu 映像访问 Windows 上的驱动器。你可以在以下目录访问你的windows系统

    /mnt/c

    但是,并非所有 Linux 应用程序或工具都可以使用 /mnt 访问文件。 一个解决方案是创建一个符号链接。

    Windows 目录:C:\Users\\Documents\Projects 注意:此目录存在。

    Linux 目录:/home//Projects 注意:该目录不存在。

    ln -s "/mnt/c/Users//Documents/Projects" /home//Projects

    现在在 WSL 中,您可以将 Windows 目录作为 /home//Projects 访问,也可以将特定文件作为 /home//Projects/ 访问,如果在 WSL 中当前目录是 ~ 那么 Projects/。

    来源:https://msdn.microsoft.com/en-us/commandline/wsl/faq

    【讨论】:

    • 这是我想到的一个好主意。老实说,我已经再次关闭了子系统,并使用老式简单的 Linux 而不是乱用 Windows。链接显卡驱动程序是否解决了问题(您提到您还没有设法解决它)?你是怎么做到的(即你具体链接了什么)?我原以为 Windows 的显卡驱动程序会提供与 Linux 不同的功能,因此它们可能不兼容。
    • 很遗憾,我使用的是公司电脑,由于我不是管理员,所以我被拒绝访问某些目录,或者在Windows系统中写入文件。
    • 很遗憾,我使用的是公司计算机,由于我不是管理员,所以我被拒绝访问某些目录或写入文件。(即我在 Windows 上找不到 libGL 的路径,并且无法创建符号链接)此外,微软表示 WSL 不保证支持使用微软软件开发 Linux 软件。 WSL 的目的是让开发者使用 Linux 工具在 Windows 10 上开发 Microsoft Apps。我认为不值得尝试。检查链接并阅读常见问题解答。
    • 这也是我的印象,所以我放弃了。感谢您分享您的发现!
    猜你喜欢
    • 2017-12-14
    • 2016-07-27
    • 2019-06-07
    • 2019-07-03
    • 2018-06-09
    • 2019-01-09
    • 2020-09-14
    • 2016-12-23
    • 1970-01-01
    相关资源
    最近更新 更多