跳到主要內容

python detect os and architecture

在 python 裡面要偵測OS的平台時可以使用 platform 這個 module:

platform.architecture()
('32bit', 'ELF')  or ('64bit', 'ELF')

要知道 OS 的版本可以用:

platform.dist()
('redhat', '6.1', 'Santiago') or ('SuSE', '11', 'x86_64')

基本上在 Linux 都可以正確的拿到所需要的資訊,but ...
在 Windows 上事情就沒有這麼簡單了...

因為即使在 Windows x64 的作業系統上,我們依然可以裝 32 位元的 python, 
這時候用 platform.architecture() 看到的就是會 ('32bit', 'WindowsPE')

那應該要怎麼辦呢? stackoverflow 上有人說可以用

os.environ['PROGRAMFILES'] 如果你看到了目錄名稱裡有 x86 字串,那應該幾乎可以猜到是 32bit python 跑在 64bit OS上。因為只有 64bit Windows 會為了相容 32bit 程式而將程式安裝在 Program Files(x86)  下。

32bit python on 32bit Windows
32bit python on 64bit Windows
64bit python on 32bit Windows => 裝不出來這樣的環境吧XD
64bit python on 64bit Windows ??

會有更準確的方法嗎?

REF:
http://stackoverflow.com/questions/2208828/detect-64bit-os-windows-in-python

留言

這個網誌中的熱門文章

3M UVA3000 更換濾芯紫外線燈匣

用了一年的3M濾水器提示說要換濾芯和燈匣 上 Youtube 想找教學的影片可是沒看到 UVA 3000 的 經過了一番奮戰後在這邊記錄一下 希望可以幫助後人,以免再重蹈覆轍。 Step 1. 拔掉插頭,把淨水器從牆上拿下來(基本上他是掛著而已),比較方便施工。 Step 2. 把前蓋往上拉,很容易就可以看到裡面的東西了。 Step 3. 打開後可以看到有兩個柱狀體,左邊的是燈匣,右邊的是濾芯。 Step 4. 這裡有個祕技是,這兩個柱狀體是可以往上 翻開30 度左右,這樣就可以有比較大的空間施工。 Step 4. 更換濾芯的話,柱狀體的瓶身上有箭頭,往左就是轉開,往右就是鎖緊。 Step 5. 更換燈匣的話比較麻煩一點,因為他底部是電源,頂部的右邊有個突出來的小方塊。對照淨水器上方連接處的話會有個弧形的凹槽,這是要 match 的.如果你只注意瓶身的箭頭往右鎖回去,就會造成漏水...Orz... Step 6. 把前蓋蓋回,機器掛回牆上,插插頭,開水,如果機器沒有告訴你有燈匣異常或漏水的話,就可以長按 C / UV  Reset 計數器了. 所以關鍵字就是,要往上翻 30 度,燈匣上面的小凸點要在右側,要看瓶身的 小箭頭. May it helps!

Getting start with Golang!

#Get started with Go https://talks.golang.org/2012/tutorial.slide#1 #Go for C programmers https://talks.golang.org/2012/goforc.slide#1 #Share Memory By Communicating https://blog.golang.org/share-memory-by-communicating #Codewalk: Share Memory By Communicating https://golang.org/doc/codewalk/sharemem/ #Go Concurrency Patterns: Timing out, moving on https://blog.golang.org/go-concurrency-patterns-timing-out-and #Go Language for Ops and Site Reliability Engineering https://talks.golang.org/2013/go-sreops.slide#1 #Go Dynamic Tools https://talks.golang.org/2015/dynamic-tools.slide#1 #Program your next server in Go https://talks.golang.org/2016/applicative.slide#1 #HTTP/2 Server Push https://blog.golang.org/h2push #gRPC Basics - Go http://www.grpc.io/docs/tutorials/basic/go.html #Go talks https://talks.golang.org/