Найти - Пользователи
Полная версия: Вопрос по PyCharm
Начало » Python для новичков » Вопрос по PyCharm
1 2
Ocean
FishHook
Спасибо огромное за уточнение. В описании для топикстартера я не стала подробнее, чтобы не усилить имеющуюся кашу. Итак, про виртуальное окружение ему лишнее сейчас.

Я с удовольствие проговорю и исправлю свои ошибки, чем продолжать заблуждаться. Вдруг я неверно понимаю или не все знаю. Вот что я знаю.

1) Интерпретаторов много. Стандартным является CPython
2) В стандартной установке python я получаю:
- интерпретатор;
- IDLE;
- документацию;
- tkinter.
Особенности:
- для windows, кажется c версии 3.5, появился запускающий модуль;
- для некоторых версий Linux библиотека tkinter не является стандартным устанавливаемым компонентом.

3) Интерпретатор python имеет встроенный REPL он же интерактивный интерпретатор с gui (спасибо курсу от MIT на eDx за знакомство с REPL python)

4) Хотя в статьях и книгах пишут, что python относится к интерпретируемым ЯП, но на самом деле у python динамическая компиляция и результат этой компиляции получаем не машинный код, который интерпретируется/выполняется непосредственно процессором. У python это происходит в PVM (python virtual machine), PVM является частью интерпретатора.

5) У интерпретатора есть командная оболочка и интерпретатору можно через командную строку передавать аргументы запуска интерпретатора, которые влияют на режим работы интерпретатора.
анализ аргументов командной строки;
установка флагов программы;
чтение переменных среды и т.д

6) Когда пользователь запускает скрипт, интерпретатор автоматически осуществляет подготовительные процессы (чтение аргументов запуска, переменных среды и что-то еще, я не помню), а затем автоматически выполняет 4 процесса, :
- разбор на опознаваемые группы (токенизация);
- проверка форматирования и синтаксический анализ (парсинг). На этом этапе прервется запуск, если проблема в синтаксисе;
- компиляция в промежуточный платформонезависимый код;
- выполнение в виртуальной машине (интерпретация).

7) Если у процесса есть разрешение на запись, то python хранит скомпилированный в байт-код результат в .pyc файлах, как вы и писали. Так же автоматически произведет компиляцию заново и перезапишет pyc, если я внесу изменения в исходный файл .py

Хотя я могу все это пересказывать словами, но знаю очень поверхностно. Токенизация, парсинг, компиляция и так далее все равно многое для меня сейчас выглядят как: “Магия, магия и еще раз магия”, потому что у меня сейчас низкий уровень знаний и умений













Ocean
Vadim123
А есть Visual Stidio с питоном?
Я уже хз, что вы имеете ввиду под этими словами. Да в Visual Studio IDE есть анализатор кода для python:
https://visualstudio.microsoft.com/ru/vs/features/python/

Или вы опять про интерпретатор python встроенный думаете?


py.user.next
У него там Лутц бесплатный типа и ссылка ведёт на Google Drive
А вот официальная ссылка
https://www.oreilly.com/library/view/learning-python-5th/9781449355722/
Лутц такой заморочился над книжкой, пошёл, проплатил издание её в издательстве, а потом с доброй душой стал раздавать её бесплатно всем.
упс, не знала, что Лутц там украденный.
Я именно с python.org брала инфу.
Спасибо, что поправили!
FishHook
Ocean
Часто используют на мой взгляд некорректную терминологию, и разделяют языки на “компилируемые” и “интерпретируемые”, что есть глупости. Я для себя вижу это так. Компьютер - это инструмент моделирования реальности. Бухгалтерская программа, это модель реального процесса учета товарно-материальных ценностей, например. Ценность компьютера в том, что с его помощью можно создавать модели реально несуществующих вещей. Например, браузер, не имеет какого-то очевидного материального аналога. Тем не менее, мы имеем нечто цельное, что имеет набор уникальных свойств, и мы называем это браузером. Мы можем создавать модели вполне конкретных предметов, например автомобиля, и с некоторыми ограничениями мы можем использовать модель автомобиля для каких-то своих целей, например устраивать на нем гонки, без опасности разбиться. Мысль, к которой я подвожу такова - мы можем построить модель физически неосуществимого автомобиля, и по прежнему его использовать для наших целей. В жизни вряд ли возможно построить автомобиль с ядерным реактором на борту, разгоняющийся до 0,9 скорости света. А смоделировать такую машину можно вполне и более того устраивать на ней гонки. Так вот. Питон и куча других интерпретаторов, это модель несуществующего процессора. Построить такой процессор в железе было бы слишком дорого и бессмысленно, потому что он был бы медленнее обычного x86, но сделать виртуальную машину - почему бы и нет? А в остальном, все то же самое. Язык вполне себе компилируется. Только компилируется в машинный код виртуальной машины, а не реальной. Вся разница.
PEHDOM
Vadim123
А есть Visual Stidio с питоном? Как вам эта среда разработки?
Считайте что есть ссылку вам уже Ocean дала выше.
ЗЫ сам не потльзовался, пользовался VSCode под линуксом в качестве IDE для пайтона, в принципе неплохо, хотя и на богомерзком електроне.
Ocean
FishHook
Так вот. Питон и куча других интерпретаторов, это модель несуществующего процессора. Построить такой процессор в железе было бы слишком дорого и бессмысленно, потому что он был бы медленнее обычного x86, но сделать виртуальную машину - почему бы и нет? А в остальном, все то же самое. Язык вполне себе компилируется. Только компилируется в машинный код виртуальной машины, а не реальной. Вся разница.
Спасибо большое, что все по полочкам.
А что про это порекомендуете почитать, чтобы еще глубже вникнуть и разобраться как работает интерпретатор и виртуальная машина питона?

FishHook
Ocean
К сожалению, по внутренней кухне питона информации крайне мало, даже система команд толком нигде в официальных документах не описана. Я знаю только одно детальное описание, как это работает
https://leanpub.com/insidethepythonvirtualmachine/read, но пробраться через него довольно сложно, для меня по крайней мере
Ocean
FishHook
о, спасибо!)
Да, я тоже эту грызть пыталась. Она у меня в конспекте в подборке. Подумала, что мне рано еще, потому что почти все непонятно
Я вот эту читала и разбирала и отсюда брала в основном сведения про интерпретатор и из Лутца.

Благодаря py.user.next уже узнала, что не все статьи в бложиках содержат нормальную и полезную информацию. Я так начиталась ереси про docstringи и py.user.next помог понять что к чему )

Теперь поняла, что надо умных людей на форуме спрашивать и черпать из хороших проверенных источников. Дури у меня в своей голове хватает) Куда мне еще чья-то.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB