Я собираюсь начать личный проект с использованием python, и я буду использовать его как в Linux (Fedora), так и в Windows (Vista), хотя я мог бы также заставить его работать на Mac, пока я на нем. Я нашел API для графического интерфейса, который будет работать на всех 3. Причина, по которой я спрашиваю, состоит в том, что я всегда слышал о небольших различиях, которых легко избежать, если вы знаете о них до начала. Есть ли у кого-нибудь какие-нибудь советы или предложения по этому поводу?






В общем:
Более конкретные вещи:
Вам следует позаботиться о версии Python, для которой вы разрабатываете. В частности, на Mac версия Python по умолчанию, установленная вместе с ОС, довольно старая (конечно, могут быть установлены более новые версии).
Не используйте библиотеки, специфичные для ОС
Позаботьтесь о «особых» элементах пользовательского интерфейса, таких как значки на панели задач (окна) и т. д.
Используйте косую черту при использовании путей, избегайте C: /, / home / ..., ... Используйте os.path для работы с путями.
не используйте косую черту - вместо этого используйте os.sep, не все в Windows работает должным образом с косой чертой
Я предпочитаю использовать os.normpath (), поскольку он, помимо прочего, нормализуется к тому, что есть os.sep.
Еще лучше вообще избегать косых черт и использовать os.path.join
Некоторые вещи, которые я заметил при разработке кроссплатформенных программ на Python:
Некоторые проблемы с именами файлов: This.File и this.file - это разные файлы в Linux, но указывают на один и тот же файл в Windows. Утомительно, если вы управляете каким-то файловым хранилищем и получаете к нему доступ с обеих платформ. Менее частая проблема связана с именами, такими как NUL или LPT, которые являются файлами в Windows.
Двоичный код распространения (если есть), скорее всего, будет использовать py2exe в Win, py2app на Mac и не будет присутствовать в Linux.
pyInstaller можно использовать для создания исполняемых файлов, совместимых с Windows и Linux, в то время как py2app работает для Mac.
Я бы добавил, что вы не должны предполагать, что пользователь mac os x захочет использовать GTK, и есть различия находятся между mac os x и окнами с wxWidgets.