Spyder в подсистеме Windows для Linux — ошибка импорта: libGL.so.1

#windows-10 #ubuntu-14.04 #anaconda #spyder #windows-subsystem-for-linux

#windows-10 #ubuntu-14.04 #анаконда #spyder #windows-subsystem-for-linux

Вопрос:

Я пытаюсь запустить Spyder (часть Anaconda) на bash в Windows 10. (Кажется, работает Ubuntu 14.04.5 LTS.) При вводе spyder amp; я получаю следующее сообщение об ошибке:

 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
 

У кого-нибудь есть опыт, как с этим справиться? Я понимаю, что «Подсистема Windows для Linux» все еще находится в бета-версии.

Ответ №1:

На случай, если кто-нибудь еще обнаружит это, как я сделал намного позже, вот что работает для меня с аналогичным сообщением об ошибке: Я побежал sudo apt-get install qtbase5-dev (см.: https://forum.qiime2.org/t/qiime2-2017-5-installation-on-windows-subsystem-for-linux/694 ), установленный Xming в Windows (https://sourceforge.net/projects/xming/?source=typ_redirect ), и добавляется export DISPLAY=:0.0 в конец .bashrc. Это устранило ошибку, и теперь я могу запустить Spyder на WSL.

Комментарии:

1. можете ли вы предоставить более подробную информацию о том, как это сделать? в частности, как бы вы использовали Xming и добавили export DISPLAY=:0.0 в конце .bashrc

Ответ №2:

У меня такая же проблема, и я еще не решил ее. Я постараюсь ответить на ваш вопрос настолько, насколько я понимаю.

Я полагаю, вы установили Bash на Ubuntu в Windows, как и я. Об этом упоминалось в этой ссылке https://msdn.microsoft.com/en-us/commandline/wsl/faq что подсистема Windows для Linux представляет собой оболочку bash, которая позволяет разработчикам использовать инструменты командной строки Linux. Когда включен WSL (это необязательная функция), компьютер загружает подлинный образ пользовательского режима Ubuntu, созданный Canonical. Bash.exe приложение при запуске загружает и запускает собственную оболочку Bash и инструменты командной строки Linux из образа Ubuntu.

Я думаю, это означает, что драйвер вашей графической карты все еще находится в вашей системе Windows, поэтому вы должны указать своему образу Ubuntu доступ к диску в вашей Windows. Вы можете получить доступ к своей системе Windows в следующем каталоге

/mnt/c

Однако не все приложения или инструменты Linux могут получить доступ к файлу с помощью /mnt . Решение заключается в создании символической ссылки.

Каталог Windows: C:Users\DocumentsProjects Примечание: Этот каталог существует.

Каталог Linux: /home//Projects Примечание: Этот каталог не существует.

ln -s «/mnt/c/Users//Documents/Projects» /home//Проекты

Теперь в WSL вы можете получить доступ к каталогу Windows как /home//Projects или к определенному файлу как /home//Projects/, и если в WSL текущий каталог ~, то Projects/ .

источник : https://msdn.microsoft.com/en-us/commandline/wsl/faq

Комментарии:

1. Это хорошая мысль, которая пришла мне в голову. Честно говоря, я снова отключил подсистему и вернулся, используя старый добрый простой Linux, вместо того, чтобы возиться с Windows. Решило ли проблему связывание с драйверами видеокарты (вы упомянули, что вам еще не удалось ее решить)? И как вы это сделали (т. Е. Против чего конкретно вы ссылались)? Я бы предположил, что драйвер видеокарты для Windows будет предоставлять разные функции для Linux, поэтому они могут быть несовместимы.

2. К сожалению, я использую компьютер компании, и мне было отказано в доступе к некоторым каталогам или записи файлов в системе Windows, поскольку я не являюсь администратором.

3. К сожалению, я использую компьютер компании, и мне было отказано в доступе к некоторым каталогам или записи файлов, поскольку я не администратор. (т.Е. Я не могу найти путь к libGL в Windows и не могу создать символическую ссылку) Более того, Microsoft заявила, что WSL не гарантирует поддержку разработки программного обеспечения Linux с помощью программного обеспечения Microsoft. Цель WSL — позволить разработчикам использовать инструмент Linux для разработки приложений Microsoft в Windows 10. Я не думаю, что стоит пытаться. Проверьте ссылку и прочитайте FAQ.

4. Это тоже было мое впечатление, поэтому я отказался от него. Спасибо, что поделились тем, что вы узнали!