如何在python脚本中运行Orange.canvas并将表转换为它?

如何在python脚本中运行Orange.canvas并将表转换为它?,python,orange,Python,Orange,我是Python和Orange的新手,希望利用Spyder和Orange进行一些数据挖掘。 我与Rstudio&Crattle的合作方式如下: 在调用Crattle之前进行一些复杂的数据准备,然后从Crattle中获取最后一个脚本,这非常方便。所以我想知道我是否可以用Python以这种方式工作。 我发现在pyhton脚本中运行小部件的脚本如下: import Orange from Orange.widgets.visualize.owruleviewer import OWRuleView

我是Python和Orange的新手,希望利用Spyder和Orange进行一些数据挖掘。 我与Rstudio&Crattle的合作方式如下:

在调用Crattle之前进行一些复杂的数据准备,然后从Crattle中获取最后一个脚本,这非常方便。所以我想知道我是否可以用Python以这种方式工作。 我发现在pyhton脚本中运行小部件的脚本如下:

import Orange
from Orange.widgets.visualize.owruleviewer import OWRuleViewer
from AnyQt.QtWidgets import QApplication
from Orange.classification import CN2Learner

data = Orange.data.Table("titanic")
learner = Orange.classification.CN2Learner()
model = learner(data)
model.instances = data

a = QApplication([])
ow = OWRuleViewer()
ow.set_classifier(model)

ow.show()
a.exec()
那么,如何处理橙色画布的主窗口呢?
非常感谢您的任何想法。

现在我可以在python脚本中运行Orange:

现在的问题是如何将orange表ot1转换为orange,将其放入一个小部件中并将其放置在画布中

我修改了源代码orangecanvas/main.py以解决标准输出和标准输出问题,这个错误在Python3.7.5中得到了修复:

def fix_win_pythonw_std_stream():
"""
在windows上运行时没有控制台(使用不带I/O的pythonw.exe
重定向)std[err | out]文件描述符无效
(`http://bugs.python.org/issue706263`_).我们通过设置
stdout/stderr到“os.devnull”。
"""
如果sys.platform==“win32”和\
os.path.basename(sys.executable)=“pythonw.exe”:
#如果sys.stdout为None或sys.stdout.fileno()<0:
#sys.stdout=open(os.devnull,“w”)
#如果sys.stderr为None或sys.stderr.fileno()<0:
#sys.stderr=open(os.devnull,“w”)
#Python3.7.5中修复了此错误
打印(“win32 pythonw.exe”)

import Orange
from Orange.widgets.visualize.owruleviewer import OWRuleViewer
from AnyQt.QtWidgets import QApplication
from Orange.classification import CN2Learner

data = Orange.data.Table("titanic")
learner = Orange.classification.CN2Learner()
model = learner(data)
model.instances = data

a = QApplication([])
ow = OWRuleViewer()
ow.set_classifier(model)

ow.show()
a.exec()
# transform a pandas dataframe to an orange table
from Orange.data.pandas_compat import table_from_frame
ot1 = table_from_frame(data)
import sys
from Orange.canvas import __main__ as om
sys.exit(om.main(["-l 1","--no-splash","--no-welcome"]))
def fix_win_pythonw_std_stream():
    """
    On windows when running without a console (using pythonw.exe without I/O
    redirection) the std[err|out] file descriptors are invalid
    (`http://bugs.python.org/issue706263`_). We `fix` this by setting the
    stdout/stderr to `os.devnull`.
    """
    if sys.platform == "win32" and \
            os.path.basename(sys.executable) == "pythonw.exe":
        # if sys.stdout is None or sys.stdout.fileno() < 0:
        #     sys.stdout = open(os.devnull, "w")
        # if sys.stderr is None or sys.stderr.fileno() < 0:
        #     sys.stderr = open(os.devnull, "w")

        # This bug is fixed in Python3.7.5
        print("win32 pythonw.exe")