Почему установщики Python MSI не поставляются с заголовочными файлами Tcl/Tk?

Установщики MSI, загружаемые с python.org, не включают файлы Tcl/Tk header (не исходные) (которые необходимы для компиляции некоторых пакетов, таких как matplotlib). Кто-нибудь знает, почему их не включили?


person Sridhar Ratnakumar    schedule 22.01.2010    source источник
comment
они здесь? python.org/ftp/python/2.6.4/Python- 2.6.4.тгз   -  person Corey Goldberg    schedule 22.01.2010
comment
@Corey: Вопрос касается установщиков Windows MSI, а не исходных дистрибутивов.   -  person Sridhar Ratnakumar    schedule 22.01.2010


Ответы (2)


Установщики Windows не включают НИКАКИХ исходных файлов. Просто потому, что так работают приложения Windows. Его можно скомпилировать на одном компьютере и он будет работать на всех. Таким образом, версии таких вещей, как python и php для Windows, предварительно скомпилированы со всеми включенными параметрами.

Если вам нужны исходные файлы, вам нужно загрузить исходный архив или что-то в этом роде.

person Tor Valamo    schedule 22.01.2010
comment
Я спросил о файлах header (.h), а не об исходных файлах. Установщики Python.org MSI включают файлы заголовков (.h) для самого Python. Взгляните на C:\Python26\include -- таким образом, мой вопрос касается не включения файлов заголовков разработчиков Tcl/tk, а не исходных файлов. - person Sridhar Ratnakumar; 22.01.2010
comment
Заголовочные файлы являются исходными файлами, Шридхар. Удивительно не то, что установщик Windows не включает заголовочные файлы для Tcl/Tk, а то, что он вообще включает какие-либо заголовочные файлы. Похоже, сопровождающий пакета подумал, что файлы заголовков для ядра Python будут полезны для пользователей бинарных пакетов Windows. — Если вы хотите скомпилировать программное обеспечение на Python, вам следует скачать исходный дистрибутив. - person Travis Bradshaw; 22.01.2010
comment
файлы заголовков python необходимы для создания модулей c, а заголовки tcl/tk — нет. - person Tor Valamo; 22.01.2010
comment
Если у вас есть модули C, интегрирующиеся с Tk, скорее всего, вам понадобятся заголовки Tk. Однако не так много пишут модули на этом уровне. - person Donal Fellows; 27.03.2010
comment
Что говорит @Donal. Для некоторых пакетов, таких как matplotlib, требуются заголовочные файлы Tk. - person Sridhar Ratnakumar; 10.05.2010
comment
Я имел в виду, что причина, по которой заголовки python распространяются, а остальные нет, заключается в том, что для создания ЛЮБОГО модуля python c вам нужны заголовки python. Все остальные заголовки являются необязательными. - person Tor Valamo; 11.05.2010

Пользователям, даже в системах Unix, на самом деле не нужны заголовки Tcl/Tk, чтобы просто использовать интерпретатор Python.

Если вы захотите встроить интерпретатор в другое приложение, вам понадобятся только заголовочные файлы Python и файлы lib (которые включены в программу установки). Модуль tkinter, который связан с Tcl/Tk, уже скомпилирован для вас в бинарном дистрибутиве, поэтому ваши скрипты Python могут просто использовать Tcl/Tk через tkinter... хотя вам, вероятно, не следует этого делать во встроенном сценарии. Причина в том, что ваше приложение может предоставлять свои функции пользовательского интерфейса Python через Python/C API, и тогда у вас не будет странного разрыва (визуально и программно) между окнами хост-приложения и окнами исходного кода Python.

Короче говоря, единственная реальная причина, по которой я вижу необходимость в заголовках Tcl и Tk, заключается в том, что вы пытаетесь собрать модуль tkinter из исходного кода, что почти никто не делает в Windows, поэтому они оставляют их для экономии места.

person ntcolonel    schedule 10.05.2010