平臺:Windows 7的
的Python:2.7.3添加了一條新路PTYHONPATH和使用它的程序是做什麼用NSIS
StrCpy $NETWORK_PATH "\\someserver\network\path\here"
DetailPrint "$\n"
DetailPrint "Setting up paths required"
Push "SETX PYTHONPATH $NETWORK_PATH;$NETWORK_PATH\lib"
Call Execute
Push '"C:\Python27\python.exe" setup.py deploy'
Call Execute
Function Execute
Exch $0
# execution of the command and return success or failure
FunctionEnd
這上面被編譯爲NSIS安裝和在多臺機器上運行。
問題 "C:\Python27\python.exe" setup.py deploy
依賴於該$ NETWORK_PATH成功執行。
第一次運行它時,$ NETWORK_PATH被追加到PYTHONPATH環境變量中,但"C:\Python27\python.exe" setup.py deploy
失敗,因爲新的PYTHONPATH僅在新的命令提示符或下次運行時纔有效。
有沒有辦法讓附加的PYTHONPATH在同一個運行中有效?
目前,我們正在運行兩次 - 一次用於設置PYTHONPATH並接受失敗,第二次運行成功。
我們嘗試的另一種替代方法是 - 我們製作了2個可執行文件,一個用於設置PYTHONPATH,另一個用於Python腳本運行。然後我們把它們放在批處理腳本中運行。
但我的首選是在一個文件和一次運行中實現這一切。
你試圖導入SYS和修改的sys.path? –
@KennyOstrom我們最初在python腳本中使用了sys.path,當我們的服務器出現DNS問題時,這樣做會遇到問題。因此,我們製作了安裝程序,以便我們可以快速更改到IP的網絡路徑並準備好安裝程序。對於我們來說,編輯所有機器上的python腳本成爲了開銷任務。 :( –
我不明白它們之間的區別,唯一的系統特定的變化是在不同系統上的env中設置NETWORK_PATH,並且你已經這樣做了。 –