簡體   English   中英

為什么運行Modelsim Executable時Python子進程返回碼總是0?

[英]Why is Python subprocess return code always 0 when running Modelsim Executable?

我正在使用 python 的子進程來啟動 modelsim 可執行文件。 在 CLI 中,我輸入了 quit -f -code<-5>。 這應該以退出代碼 -5 退出 modelsim。 我嘗試了多個不同的子流程,例如 call/run/check_call/checkoutput 但它們都返回 0 ,就好像它成功運行了一樣。 如果 modelsim 以非零退出代碼退出,子進程不應該返回非零返回代碼並引發 CalledProcessError 嗎?

例如:
CLI 中的python example.py
status = subprocess.call([r"C:\...\...\vsim.exe", "-c", "-do"])在 python 腳本中
在 CLI 中quit -f -code<non-zero integer>

而不是退出嘗試“退出 -f -code 5”。

注意 Modelsim 使用 1 到 231 作為自己的錯誤消息,所以我會使用 256 以上的數字。

補充:退出和退出對我來說似乎都可以正常工作,可能是版本問題? 我使用了 Modelsim 2019.4 和 Python 3.7.1。 這是我使用的代碼:

Python代碼:

` 導入系統
導入子流程

def main(argv):
    status = subprocess.call([r"vsim.exe", "-c", "-do", "run.do"])
    print("vsim returned",status)    
    sys.exit(status)

if __name__ == '__main__':    
    main(sys.argv[1:])`

運行.do 文件:

vsim top run 1 us quit -f -code 34

CMD 批處理文件:

python callvsim.py @echo Python returned %ERRORLEVEL%

和 output:

Errors: 0, Warnings: 0 vsim returned 34 Python returned 34

祝你好運,

漢斯

www.ht-lab.com

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM