2009-01-08 163 views
4

我即將開始使用python的個人項目,我將在Linux(Fedora)和Windows(Vista)上使用它,儘管我可能會在Mac上使用它,它。我找到了一個可以在所有3上工作的GUI的API。我所要求的原因是因爲我一直聽說如果在開始之前知道它們,很容易避免的小差異。有沒有人有這方面的提示或建議?Python和不同的操作系統

回答

4

一般:

  • 小心路徑。儘可能使用os.path。
  • 不要以爲HOME指向用戶的家庭/配置文件目錄。
  • 避免使用像unix域套接字,fifos和其他POSIX特定的東西。

更具體的東西:

  • 如果你使用wxPython的,請注意,有可能是在像這產生線程某些事件東西差異不要以爲事件的產生。特定的線程。如果您正在調用觸發GUI事件的方法,則不要認爲事件處理程序在您的方法返回時已完成。 (當然,反之亦然)。
  • GUI將會如何顯示。佈局並不總是以完全相同的方式實施。
+0

我想補充一點,你不應該假設mac os x用戶會想要使用GTK,並且在mac os x和windows與wxWidgets之間有**差異。 – Arafangion 2011-07-07 05:17:48

1
  1. 你應該照顧你是對開發Python版本。特別是,在Mac上,Python的默認版本的OS安裝,是相當老的(當然,新版本可以安裝)

  2. 不要使用OS特定的庫

  3. 要特別小心的'特殊'用戶界面元素,如任務欄圖標(窗口),...

  4. 使用正斜槓時使用路徑,避免C:/,/ home/...,...使用os.path工作與路徑。

+1

不要使用正斜槓 - 反而使用os.sep,並不是所有的窗口在正常斜槓下都能正常工作 – Moe 2009-01-08 18:59:54

+0

我更喜歡使用os.normpath(),因爲它將標準化爲任何os.sep等等。 – Soviut 2009-01-08 19:00:48

3

有些事情,我也注意到自己的跨平臺開發的Python:

  • OSX沒有一個托盤,所以應用程序通知通常發生就在被告席上。因此,如果您正在構建後臺通知服務,則可能需要少量特定於平臺的代碼。
  • os.startfile()顯然只適用於Windows。無論是Leopard上的Python 2.5.1還是不支持它。
  • os.normpath()也是你可能想要考慮的東西,只是爲了讓你的路徑和卷使用正確的斜槓記法和卷名。
  • 圖標在Windows和OSX中以基本不同的方式處理,請確保您爲所有尺寸(16x16,24x24,32x32,48x48,64x64,128x128和256x256)都提供了適當尺寸的圖標,並且請務必閱讀用wx小部件設置圖標。
0

一些文件名問題:This.File和this.file是Linux上的不同文件,但指向Windows上的同一文件。如果您管理某些文件存儲庫並從兩個平臺訪問它,則會出現麻煩。不太常見的相關問題是像NUL或LPT這樣的名稱是Windows上的文件。

二進制分發代碼(如果有的話)可能會在Win上使用py2exe,在Mac上使用py2app並且不會在Linux上存在。