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