如何解决如何停止使用导入的文件导入行参数
我有两个程序train.py和predict.py,并且我要从train导入一个经过训练的模型来进行预测。 这两个程序都接受行参数,并且train运行正常,但是当我运行带有行参数的predict时,发生了一个错误,我没有输入train.py所需的参数。 我该如何解决?
解决方法
您的问题可以使用更多上下文。但是,这可能是可能发生的事情:
上下文
import
import
文件(模块)时,其内容被执行。如果您的文件仅包含声明(例如变量,类和函数定义),那么一切都很好,您可以在编写train.py
语句的地方使用它们。
现在,如果您导入的模块包含诸如函数 calls 之类的实际代码,它将开始运行!
您的if __name__ == "__main__":
文件可能期望函数失败(显然缺少一些参数)。
避免这种情况的常用解决方案是将所有调用包装在import
子句中。这样,只有直接调用该文件(与train.py
ed相对),它才会被执行。
tl; dr:
在您的def a_function():
pass
class SomeClass:
pass
a_function() # <--- this is a call
my_var = SomeClass() # <--- this too !
文件中查找函数调用
def a_function():
pass
class SomeClass:
pass
if __name__ == "__main__":
#only executed if you call this file (python train.py)
a_function()
my_var = SomeClass()
并将它们放在该子句中
#Accepting Password
pwd_var=StringVar()
pwd=tk.Label(text='Create Password')
pwd.pack()
pwd_en=tk.Entry(textvariable=pwd_var)
name_in.pack()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。