Python и разные операционные системы - PullRequest
4 голосов
/ 08 января 2009

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

Ответы [ 4 ]

4 голосов
/ 08 января 2009

В целом:

  • Будьте осторожны с путями. По возможности используйте os.path.
  • Не думайте, что HOME указывает на домашний каталог / каталог пользователя.
  • Избегайте использования таких вещей, как сокеты Unix-домена, fifos и другие специфичные для POSIX вещи.

Более конкретный материал:

  • Если вы используете wxPython, обратите внимание, что могут быть различия в вещах, например, в каком потоке генерируются определенные события. Не думайте, что события генерируются в определенном потоке. Если вы вызываете метод, который вызывает GUI-событие, не думайте, что обработчики событий завершили к моменту возврата вашего метода. (И наоборот, конечно.)
  • Всегда существует разница в том, как будет выглядеть GUI. Макеты не всегда реализуются одинаково.
3 голосов
/ 08 января 2009

Некоторые вещи, которые я заметил в моей кроссплатформенной разработке на Python:

  • OSX не имеет трея, поэтому уведомления приложений обычно происходят прямо в доке. Поэтому, если вы создаете службу фоновых уведомлений, вам может потребоваться небольшой объем кода для конкретной платформы.
  • os.startfile (), видимо, работает только в Windows. Либо это, либо Python 2.5.1 на Leopard не поддерживает его.
  • os.normpath () - это то, что вы тоже можете использовать, просто чтобы сохранить ваши пути и тома, используя правильную косую нотацию и имена томов.
  • обрабатываются принципиально по-разному в Windows и OSX, убедитесь, что вы предоставляете значки всех правильных размеров (16x16, 24x24, 32x32, 48x48, 64x64, 128x128 и 256x256) и обязательно прочитайте настройка значков с помощью виджетов wx.
1 голос
/ 08 января 2009
  1. Вам следует позаботиться о версии Python, для которой вы разрабатываете. В частности, на Mac установленная по умолчанию версия Python, установленная с ОС, довольно старая (конечно, могут быть установлены более новые версии)

  2. Не использовать специальные библиотеки ОС

  3. Особое внимание уделите «особым» элементам пользовательского интерфейса, таким как значки на панели задач (окна), ...

  4. Используйте косую черту при использовании путей, избегайте C: /, / home / ..., ... Используйте os.path для работы с путями.

0 голосов
/ 08 января 2009

Некоторые проблемы с именами файлов: This.File и this.file - это разные файлы в Linux, но они указывают на один и тот же файл в Windows. Неприятно, если вы управляете каким-либо файловым хранилищем и получаете к нему доступ с обеих платформ. Менее частая проблема связана с именами, такими как NUL или LPT, которые являются файлами в Windows.

Бинарный дистрибутивный код (если есть), вероятно, будет использовать py2exe на Win, py2app на Mac и не будет присутствовать в Linux.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...