Я настроил в BIOS параметры двойной загрузки (в моем случае Поддержка устаревшего режима загрузки ). Из GRUB введите «выход» и выберите диспетчер загрузки Ubuntu в меню параметров загрузки на следующем экране. Мне удалось успешно загрузить Ubuntu.
In general, Linux assumes all files ending with.py are python scripts
Linux как ядро на самом деле не заботятся об окончании файлов. Это только проверяет, начинается ли файл с шебанг или немного магии например, 0x7F, за которым следует ELF (45 4c 46 )для ЭЛЬФ .
Я могу воспроизвести эту проблему с помощью 1.8.14 (Xfce 4.12)
в Slackware 64. -ток. Thunar не определяет типы файлов сам по себе, а использует База данных MIME , которая другая программы также используют:
$ grep mime /proc/$(ps -C thunar -o pid:1=)/maps
7f2c3a709000-7f2c3a730000 r--s 00000000 08:01 1055508 /usr/share/mime/mime.cache
Вы можете использовать xdg-mime query filetype
или программу Perl под названием mimetype
из perl-file-mimeinfo
для проверки типа MIME для данного файл:
$ mimetype test.py
test.py: text/x-qml
И используйте -D
с mimetype
, чтобы проверить, почему был выбран данный тип MIME:
$ mimetype -D test.py
> Data dirs are: /home/ja/.local/share, /usr/local/share, /usr/share
> Checking inode type
> Value "import Qt" at offset 3044 matches at /usr/share/mime/magic line 120
>> Value "{" at offset 3065 matches at /usr/share/mime/magic line 121
test.py: text/x-qml
Как видите, в данном случае mimetype
говорит, что test.py — это text/x-qml
потому что он содержит фигурные скобкиimport Qt
и . Если бы test.py посмотрел вот так:
#!/usr/bin/env python3
from PyQt5 import QtWidgets
mimetype
сообщает, что это скрипт Python, потому что, хотя он может найти import Qt
нет фигурных скобок:
$ mimetype -D test.py
> Data dirs are: /home/ja/.local/share, /usr/local/share, /usr/share
> Checking inode type
> Value "import Qt" at offset 3044 matches at /usr/share/mime/magic line 120
> Failed nested rules
> Checking globs for basename 'test.py'
> Checking for extension '.py'
test.py: text/x-python
Что смешного, если test.py
переименовать в test.pl
, то mimetype
утверждает, что это сценарий Perl.
OTOH, file
говорит, что это скрипт Python, даже после его переименования:
$ file test.pl
test.py: Python script, ASCII text executable
См. этот ответ, чтобы узнать о расхождениях между командами mimetype
иfile
:'file --mime -type' и 'mimetype', возвращающими разные результаты .