Windows 2003上 salt 和 psutil 可能存在的問題及解決

來源:互聯網
上載者:User

標籤:

  今天把salt安裝在windows 2003上,發現無法啟動,隨之而來的是一個有一個的坑,讓我們一起逐個排查。

問題一(salt無法啟動)

  salt無法啟動,錯誤結果

解決

  這種錯誤完全無厘頭呀,本著相信salt的原則,我們看看python能不能正常啟動,由此產生新的問題。

 問題二(python無法啟動)

  啟動C:\salt\bin\python,發現仍舊無法啟動。這就奇怪了,我有理由相信這可能是salt內建的python的問題。那麼從Python的官網下載個新包Python2.7.12看看,安裝後發現官網的Python啟動正常。莫非是初始化了一些環境變數?回過頭來再去看salt中的python能不能用,奇蹟般地好了~

 解決

  重新安裝一次官網的Python,然後再啟動salt中的python試試。

  原因在於,這台windows 2003原來裝過python,但可能因為後來卸載不徹底,以及中間各種軟體安裝影響了一些環境變數,導致salt中python無法正常啟動。

 

問題三(缺少MSCVCR100.dll)

  既然python啟動問題已經搞定,那就再去啟動salt-minion吧。這次開啟debug模式,看看能否正常啟動,啟動不了也會有詳細資料。執行C:\salt\salt-minion-debug.bat,結果沒過多久報了這個錯:

 

解決

  既然windows 2003這位老先生明確告訴我們缺少了MSVCR100.dll這個動態連結程式庫,那就找到它吧。這個庫是vc++2010裡的,所以從微軟的官網下載Microsoft Visual C++ 2010 可轉散發元件包 (x86), 安裝完畢後,再啟動salt-minion就不會報錯了。

 

問題四(psutil中 ‘from . import _psutil_windows as cext’ 報錯)

  由於項目中用到psutil,自然想到要檢驗下salt內建的python第三方psutil能否正常使用,結果很遺憾:

  這是什麼鬼?不能匯入的原因太模糊了吧,dll匯入失敗?!哪個dll?

  去報錯相應的目錄下看看吧,也就是C:\salt\bin\lib\site-packages\psutil\下,發現要匯入的_psutil_windows包其實是_psutil_windows.pyd這個連結庫。匯入這個連結庫失敗,那麼就看看這個連結庫到底連結了什麼東西。

  使用dependency walker去瞅瞅,發現是這樣的問題:

解決

  把缺失的這兩個dll(msvcr90.dll, msjava.dll)補上?補上後仍然有問題,看下文。

 

問題五(At least one module has an unresolved import ...)

  補上兩個dll後,還顯示一個錯誤:

  根據圖片中的顯示,大概是iphlpapi.dll和kernel32.dll的匯入或被匯入出現了問題。但是這兩個是系統的呀,能奈之何?

  先不管這個錯誤,嘗試運行下python,然後import psutil,看看會不會報錯:

  看來還是老錯誤,無法避免。

  會不會是salt預裝的psutil有問題?去C:\salt\bin\scripts\下,pip uninstall psutil卸載掉再重裝試試,結果還是不行。

  這就非常奇怪,突發奇想該不會是高版本的psutil不支援低版本的系統導致的吧?於是再次卸載掉psutil,裝了個1.x版本實驗了下,結果可以了。

解決

  安裝一個低版本的psutil試試,注意你用到的psutil的功能在低版本中可能不存在。

 

問題六(salt模組依賴的wmi可以用嗎?)

  從salt官網上看到關於windows 2003這樣的描述:

  貌似是wmi需要額外安裝。

  那就先看看wmi能不能正常匯入吧:

  很好,wmi庫可以正常匯入,項目要用到的wmic(第一次在cmd中輸入,會自動安裝)也能正常使用,皆大歡喜。

 

總結

  在低版本的系統上,可能會有各種各樣想不到的坑。再次做個記錄留作備忘,也給將來可能踩坑的同學借鑒經驗。

Windows 2003上 salt 和 psutil 可能存在的問題及解決

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.