【问题标题】:print statement not appearing in terminal打印语句未出现在终端中
【发布时间】:2019-12-19 02:24:37
【问题描述】:

在上学期上完我的 AI 课后,我开始玩 scikit-learn。我之前没有使用 python 的经验(我们使用了 WEKA),所以我用一个包含所有包的虚拟环境设置了 python3。我已经激活了虚拟环境并尝试通过python3 <filename.py> 运行以下代码

从 sklearn 导入 svm,数据集 从 numpy 导入 genfromtxt, savetxt 导入系统

def main():
    digits = datasets.load_digits()
    clf = svm.SVC(gamma=0.001, C=100.)
    clf.fit(digits.data[:-1], digits.target[:-1])  
    SVC(C=100.0, cache_size=200, class_weight=None, coef0=0.0, degree=3,
    gamma=0.001, kernel='rbf', max_iter=-1, probability=False,
    random_state=None, shrinking=True, tol=0.001, verbose=False)
    print(clf.predict(digits.data[-1]))
    sys.stdout.flush()

它不向 iterm(一个 mac os x bash 终端)打印任何内容。所以尝试运行这段代码

def main():
    print("hi", end='\n', file=sys.stdout, flush=True)

它也什么也不打印。我查看了打印文档并问了一个朋友(他只使用过 2.7),但没有弄清楚

【问题讨论】:

  • 呃,你真的运行了main()函数吗?

标签: python scikit-learn


【解决方案1】:

你的 main() 函数是否被调用过?尝试将其添加到模块的末尾。

if __name__=="__main__":
    main()

【讨论】:

  • /facepalm.这就是我试图直接跳入 scikit 而不花太多时间来了解 python 是如何工作的。谢谢..
【解决方案2】:

您是否真的运行 main() 函数?在上面的代码中,您定义了 一个名为main() 的过程,但它必须被调用 才能对其进行处理。因为您是在终端上工作,所以只需输入main() 并按[ENTER]

如果您是从文件中运行程序,那么@AndrewJohnson 的答案是准确的。

【讨论】:

    【解决方案3】:

    我在使用几种类型的 python 脚本时遇到了同样的问题。只是通过检查缩进来纠正它。正确的缩进。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多