Python和不同的操作系统

时间:2009-01-08 18:38:10

标签: python cross-platform

我即将使用python启动一个个人项目,我将在Linux(Fedora)和Windows(Vista)上使用它,虽然我不妨在它上面使用它。我找到了一个适用于所有3的GUI的API。我问的原因是因为我总是听说如果你在开始之前了解它们就很容易避免的小差异。有没有人有这些方面的任何提示或建议?

4 个答案:

答案 0 :(得分:4)

一般来说:

  • 小心路径。尽可能使用os.path。
  • 不要假设HOME指向用户的主页/个人资料目录。
  • 避免使用unix-domain套接字,fifos和其他特定于POSIX的东西。

更具体的内容:

  • 如果你正在使用wxPython,请注意在某些事件中可能会产生差异,例如生成某些事件的线程。不要假设事件是在特定线程中生成的。如果您正在调用触发GUI事件的方法,请不要假设事件处理程序在方法返回时已完成。 (反之亦然。)
  • GUI的显示方式总是存在差异。布局并不总是以完全相同的方式实现。

答案 1 :(得分:3)

我在Python的跨平台开发中注意到的一些事情:

  • OSX没有托盘,因此应用程序通知通常发生在Dock中。因此,如果您正在构建后台通知服务,则可能需要少量特定于平台的代码。
  • os.startfile()显然只适用于Windows。无论是Leopard上的Python 2.5.1还是不支持它。
  • os.normpath()也是您可能想要考虑使用的东西,只是为了使用正确的斜杠符号和卷名来保持路径和卷。
  • 图标在Windows和OSX中以完全不同的方式处理,请确保为两者(16x16,24x24,32x32,48x48,64x64,128x128和256x256)提供所有正确尺寸的图标,并务必阅读使用wx小部件设置图标。

答案 2 :(得分:1)

  1. 您应该处理正在开发的Python版本。特别是在Mac上,随操作系统安装的Python的默认版本相当陈旧(当然,可以安装更新的版本)

  2. 请勿使用操作系统特定的库

  3. 特别注意“特殊”UI元素,例如任务栏图标(窗口),...

  4. 使用路径时使用正斜杠,避免C:/,/ home / ...,...使用os.path来处理路径。

答案 3 :(得分:0)

一些文件名问题:This.File和this.file是Linux上的不同文件,但指向Windows上的同一文件。如果您管理一些文件存储库并从两个平台访问它,那就太麻烦了。较不常见的相关问题是像NUL或LPT这样的名称是Windows上的文件。

二进制分发代码(如果有的话)可能会在Win上使用py2exe,在Mac上使用py2app并且不会出现在Linux上。