2014-03-31 24 views
1

我在linux上編譯makensis。它從這樣的bash shell執行時效果很好。從linux上執行python的makensis

makensis /path/to/setup.nsi 

我想使用python腳本來執行它。我試過以下內容:

#using the symlink in /usr/bin 
subprocess.call("makensis setup.nsi") 

#absolute path to makensis executable 
subprocess.call("/usr/share/makensis/makensis setup.nsi") 

#Change directory 
os.chdir("/usr/share/makensis") 
subprocess.call("makensis setup.nsi") 

我也試過將cwd arg傳遞給subprocess.call。

在所有這些情況下,makensis無法找到它的依賴關係。它正在尋找在/ usr/bin中/和引發此錯誤:

Error: opening stub "/usr/bin/Stubs/zlib" 

我不知道這是否是我的python腳本或makensis方式有問題編譯。我傾向於認爲它是python腳本,因爲makensis可以在bash shell中正常工作。任何指針都非常感謝。

編輯: 這是scons的命令我用來建立NSIS:

scons SKIPSTUBS=all SKIPPLUGINS=all SKIPUTILS=all SKIPMISC=all NSIS_CONFIG_CONST_DATA_PATH=no PREFIX=/usr/share/ APPEND_CCFLAGS=-m32 APPEND_LINKFLAGS=-m32 install-compiler 
+0

這將幫助你張貼您的scons命令用於建立NSIS ... – Anders

+0

只是爲了讓您知道,現在可以在Posix上交叉編譯存根和插件... – Anders

+0

@Anders感謝您的支持。你有文檔鏈接嗎? – AgDude

回答

1

我們採用NSIS廣泛,但我從來沒有想過嘗試POSIX/UNIX平臺上運行它。在任何情況下,我檢查周圍(因爲我總是想了解更多的NSIS CONFIGS),並發現這個鏈接 - 這特別指明您的問題,包括解決

http://wiki.koshatul.com/Installing_Nullsoft_Scriptable_Installer_System_%28NSIS%29_on_BSD#Error:_opening_stub_.22.2Fusr.2Flocal.2Fbin.2FStubs.2Fzlib.22

Remove the NSIS_CONFIG_CONST_DATA_PATH=no if you have it from your scons line, check the paths are all good for building as well.

+0

感謝您的指針。我曾假設如果這是不正確的,它也不會從命令行工作。我會嘗試用不同的路徑選項重建它。 – AgDude

+0

從該鏈接使用scons命令做了訣竅。謝謝。使用鏈接中的選項,您需要手動將Contrib,Include,Plugins和Stubs文件夾放入/ usr/local/share/nsis中。 – AgDude