В принципе, я программист на Java, который хочет изучить язык Python. Я хочу уточнить, почему некоторые из библиотек python распространяются с помощью непортативного способа.Проблемы с переносимостью Python
Позвольте мне объяснить свои мысли. Если кто-то создает библиотеку регулярных используя Java он готовит 1 (один) файл JAR, который может использоваться на различных платформах:
my-great-lib-1.2.4.jar
я могу использовать этот LIB (тот же файл) на любой версии Windows, или Linux.
В отличие от Java, Python библиотеки может выглядеть следующим образом:
bsdiff4-1.1.4.win-amd64-py2.5.exe
bsdiff4-1.1.4.win-amd64-py2.6.exe
bsdiff4-1.1.4.win-amd64-py2.7.exe
bsdiff4-1.1.4.win-amd64-py3.2.exe
bsdiff4-1.1.4.win-amd64-py3.3.exe
bsdiff4-1.1.4.win32-py2.5.exe
bsdiff4-1.1.4.win32-py2.6.exe
bsdiff4-1.1.4.win32-py2.7.exe
bsdiff4-1.1.4.win32-py3.2.exe
bsdiff4-1.1.4.win32-py3.3.exe
Посмотреть полный список на page.
Это выглядит очень странно для меня. Даже 32-битные и 64-битные платформы требуют разных инсталляторов. Монтажники! Зачем мне нужен установщик для использования одной библиотеки? Более того, указанные установщики предназначены только для Windows. Каждый из них связан с конкретной версией python. Где переносимость?
Может ли кто-нибудь объяснить необходимость в 10 разных файлах выше?
Цифры после 'py' предназначены для разных версий python. Вы говорите, что существует только одна версия Java? – doctorlove
Переносимость в коде C, из которого они скомпилированы, - если вы используете диспетчер пакетов, например 'pip', тогда вы можете скомпилировать его для своей собственной платформы. – Eric
Если я скомпилирую мою единственную банку для java 6, она будет работать на java 6 , 7, 8. Еще одна банка. – tmporaries