Я заметил, что модули/пакеты Python имеют два типа. Некоторые из них являются просто чистыми сценариями Python и могут быть просто скопированы и вставлены в каталог Python. Другие, однако, требуют, и я думаю, что это обычно обертки для или на основе кода C/C++, что код «построен» и/или «скомпилирован» с помощью setup.py для создания набора новых файлов.Почему некоторые модули Python должны быть «скомпилированы»?
Мои вопросы касаются второго типа модуля/пакета. Почему они должны быть скомпилированы, есть ли для этого конкретная причина? Не мог ли дистрибьютор предоставить все файлы с самого начала?
Причина, по которой я прошу, состоит в том, что я хочу распространять такие пакеты на основе C++ как часть своих собственных пакетов, так что пользователю не нужно беспокоиться об установке зависимостей самостоятельно и не беспокоиться о компиляции, и т. д. Я всегда задавался вопросом, почему дистрибьюторы модулей не просто включают зависимости, а не спрашивают у пользователя, чтобы они сами устанавливали их.
Я подозреваю, что ответ может быть bc, что дополнительные файлы должны быть записаны определенным образом в зависимости от того, какой тип ОС находится на компьютере, и является ли это 32 или 64 бит. Может ли это означать, что распространение скомпилированных файлов будет работать, но только если у пользователя есть такая же конкретная ОС и битовая система, как и тот, где были скомпилированы файлы.
В любом случае, интересно узнать ответ.
Многие пакеты предоставляют двоичные дистрибутивы, поэтому ответ «да, дистрибьютор может просто предоставить все файлы». – geoffspear
Я предполагаю, что вы все уже догадались правильно ;-) Конечно, там также есть пакеты, содержащие предварительно скомпилированные двоичные файлы, которые затем будут работать только в архитектуре, для которой они были предварительно скомпилированы. – Alfe
Не знаете, что здесь скомпилировано? Вы имеете в виду, что некоторые модули python могут быть установлены с помощью 'pip install package' или' python setup.py install' вместо того, чтобы просто предоставить кучу файлов? – msvalkon