[英]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.