Python和不同的操作系统
问题描述:
我即将开始使用python的个人项目,我将在Linux(Fedora)和Windows(Vista)上使用它,尽管我可能会在Mac上使用它,它。我找到了一个可以在所有3上工作的GUI的API。我所要求的原因是因为我一直听说如果在开始之前知道它们,很容易避免的小差异。有没有人有这方面的提示或建议?Python和不同的操作系统
答
一般:
- 小心路径。尽可能使用os.path。
- 不要以为HOME指向用户的家庭/配置文件目录。
- 避免使用像unix域套接字,fifos和其他POSIX特定的东西。
更具体的东西:
- 如果你使用wxPython的,请注意,有可能是在像这产生线程某些事件东西差异不要以为事件的产生。特定的线程。如果您正在调用触发GUI事件的方法,则不要认为事件处理程序在您的方法返回时已完成。 (当然,反之亦然)。
- GUI将会如何显示。布局并不总是以完全相同的方式实施。
答
有些事情,我也注意到自己的跨平台开发的Python:
- OSX没有一个托盘,所以应用程序通知通常发生就在被告席上。因此,如果您正在构建后台通知服务,则可能需要少量特定于平台的代码。
- os.startfile()显然只适用于Windows。无论是Leopard上的Python 2.5.1还是不支持它。
- os.normpath()也是你可能想要考虑的东西,只是为了让你的路径和卷使用正确的斜杠记法和卷名。
- 图标在Windows和OSX中以基本不同的方式处理,请确保您为所有尺寸(16x16,24x24,32x32,48x48,64x64,128x128和256x256)都提供了适当尺寸的图标,并且请务必阅读用wx小部件设置图标。
答
一些文件名问题:This.File和this.file是Linux上的不同文件,但指向Windows上的同一文件。如果您管理某些文件存储库并从两个平台访问它,则会出现麻烦。不太常见的相关问题是像NUL或LPT这样的名称是Windows上的文件。
二进制分发代码(如果有的话)可能会在Win上使用py2exe,在Mac上使用py2app并且不会在Linux上存在。
我想补充一点,你不应该假设mac os x用户会想要使用GTK,并且在mac os x和windows与wxWidgets之间有**差异。 – Arafangion 2011-07-07 05:17:48