簡體   English   中英

在沒有循環導入錯誤的情況下重新啟動 main.py

[英]restarting main.py without circular import error

程序完成運行后,我正在嘗試重新啟動我的 main.py。 但是,當我將 go 放入最后一個文件(unlock.py)時,然后放在腳本的末尾:

from main import *

main()

我收到一個循環導入錯誤。 我不確定解決此問題的方法,因此如果有人知道,將不勝感激您的幫助。 如果您有任何問題隨時問。

您可以使用os模塊的execv方法:

import os
import sys

os.execv(__file__, sys.argv)

如果您收到任何權限錯誤:

os.execv(sys.executable, 
         [sys.executable, os.path.join(sys.path[0], __file__)] + sys.argv[1:])

要禁用警告:

import warnings
warnings.filterwarnings("ignore")

在沒有看到程序結構的情況下,我能給出的最佳建議是將您的main function 作為參數傳遞。 這樣,在 unlock.py 中,您不需要導入main模塊。

考慮這個簡單的例子:

主文件

import unlock

def main(function_to_pass):
    # do stuff
    unlock.some_func(function_to_pass,*rest_of_args)

if __name__ == '__main__':
    main(main)

解鎖.py

def some_func(function_to_call,*args):
   # do stuff
   if some_condition:
        function_to_call()

編輯:我意識到你不需要將main傳遞給它自己。 main可以簡單地引用自身。 那是,

def main():
    # do stuff
    unlock.some_func(main,*args)

暫無
暫無

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

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