0

我写了一个 Script.py 脚本。在这个脚本中,我开始初始化一些变量,而不是 7 个类,最后我运行一个 cerebro 来回测股票:

> if __name__ == '__main__':
>     cerebro = bt.Cerebro()
>     ...
>     ...

如果我手动运行脚本,回测工作完美,我得到了我想要的结果。但是如果我想从另一个这样的脚本运行这个脚本:

import os
import Backtest
os.system('Backtest.py')

为此,我将所有脚本放在一个文件夹中,并将每个脚本导入到 Runner Script 中。每个脚本都能完美运行,只有 Backtest.py 脚本给出错误消息

sh:Backtest.py:找不到命令

我还必须提到,其他脚本(可以工作并且也可以通过 os.system 由运行脚本执行)都没有类,也没有“if name == 'main':”。

有谁知道为什么找不到这个 backtest.py 脚本以及如何解决这个问题?

最好的祝福

4

1 回答 1

0

我认为实现你想要做的最好的方法,假设你通过调用来运行一个python脚本:另一个shell,另一个python解释器(它不一定与你运行你的脚本相同),将移动你的函数main中的部分main(),然后从另一个脚本import中将其作为普通函数调用。因此sys.executable,您将拥有:

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

os.system通常是一种调用可执行文件的相当奇怪的方式:请subprocess在将来使用该模块

于 2020-12-20T12:45:42.193 回答