Доброго времени суток, читатели, зрители моего канала programmer's notes.
Приложение к видео
Ещё о библиотеке sys в Python
В данной статье я продолжу говорить о библиотеке sys. Расскажу сегодня об её информационной части, впрочем довольно важной. Некоторые информационные возможности представлены ниже в программе
Результат выполнения программы
Путь к интерпретатору Python:
/usr/bin/python3
Каталог установки Python:
/usr
Платформа:
linux
Версия Python:
3.9.16 (main, Mar 21 2023, 10:12:38)
[GCC 10.3.1 20210703 (ALT Sisyphus 10.3.1-alt2)]
Используемая кодировка:
utf-8
Кодировка файловой системы:
utf-8
Лимит рекурсии:
1000
['/home/vladislav/Yandex.Disk/projects/programming/python2/sys/2', '/usr/lib64/python39.zip', '/usr/lib64/pytho
n3.9', '/usr/lib64/python3.9/lib-dynload', '/home/vladislav/.local/lib/python3/site-packages', '/usr/lib64/pyth
on3/site-packages', '/usr/lib64/python3/site-packages/gtk-2.0', '/usr/lib/python3/site-packages']
Программа, конечно, была запущена у меня на компьютере. У вас, естественно, могут быть несколько отличные результаты. Сделаю несколько пояснений к используемым возможностям библиотеки sys.
- Путь к интерпретатору и каталог, где был установлен Python, конечно разные. Так как кроме самой программы запуска интерпретатора есть множество вспомогательных программа, библиотек, модулей, которые расположены в разных каталогах, расположенных в /usr. А в других системах расклад будет совсем другой.
- sys.platform — это обычно имя операционной системы, записанной в нижнем регистре. Это могут быть linux, aix, win32, freebsd и т.д. Важная информация, если вы пишите кроссплатформенное приложение. Определив в начале систему, можно несколько скорректировать значения для данных.
- sys.version — даёт версию Python. Многие программисты проверяя версию, выдают сообщение, если версия не подходит для данной программы.
- sys.getdefaultencoding() — выдаёт кодировку по-умолчанию для данной системы Python. Чаще всего это сейчас utf-8.
- sys.getfilesystemencoding() — кодировка файловой системы.
- sys.getrecursionlimit() — максимальная глубина рекурсии. У меня, как видите, это 1000. На самом деле не так много для серьёзных задач. Изменить максимальный уровень рекурсии можно с помощью sys.setrecursionlimit(limit). Конечно, действовать этот уровень будет только при выполнении данной программы.
- sys.path — представляет собой список путей для поиска модулей. К этим вопросам мы, конечно, ещё вернёмся, но сейчас я хотел бы обратить внимание на элемент sys.path[0]. Он содержит полный путь к каталогу, где расположена запущенная программа. Это очень важная информация. В каталоге, где расположена программа часто хранят много разных данных и других программ. И вот вам способ получить полный путь к каталогу. Пути, кстати, можно добавлять свои, добавляя элементы к списку и действовать это будет пока работает программа. Начинающие программисты часто не обращают внимание на то, в каком каталоге содержится программа. Не запускается. а именно содержится. Мы неоднократно будем возвращаться к вопросу о каталогах, имеющих значение при запуске программы.
Я не стал рассматривать группу функций данной библиотеки, связанной с трассировкой. Ну, возможно, я сделаю не большой курс по отладке программ. Тогда, наверное, мы снова вернёмся к библиотеке sys.
В качестве дополнения, результат выполнения программы в операционной системе Windows у меня на вируталке
Путь к интерпретатору Python:
C:\Users\Vlad\AppData\Local\Programs\Python\Python310\python.exe
Каталог установки Python:
C:\Users\Vlad\AppData\Local\Programs\Python\Python310
Платформа:
win32
Версия Python:
3.10.0 (tags/v3.10.0:b494f59, Oct 4 2021, 19:00:18) [MSC v.1929 64 bit (AMD64)]
Используемая кодировка:
utf-8
Кодировка файловой системы:
utf-8
Лимит рекурсии:
1000
['C:\\Users\\Vlad\\Downloads\\tmp\\pylife-main\\old',
'C:\\Users\\Vlad\\AppData\\Local\\Programs\\Python\\Python310\\python310.zip',
'C:\\Users\\Vlad\\AppData\\Local\\Programs\\Python\\Python310\\DLLs',
'C:\\Users\\Vlad\\AppData\\Local\\Programs\\Python\\Python310\\lib',
'C:\\Users\\Vlad\\AppData\\Local\\Programs\\Python\\Python310',
'C:\\Users\\Vlad\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages']
Как видим есть не большие отличия, и определить на какой платформе будет исполняться программа также смысл есть.
Хорошего программирования. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.