如何添加添加到Orange3

时间:2015-01-20 21:19:41

标签: pandas orange

我正在使用pandas进行一些数据分析。我公司的其他人希望以类似的方式处理数据,但不想使用编程语言来完成它。经过大量的谷歌搜索,我找到了Orange,它具有我想让人们做的完美界面。但是,小部件不会执行我们正在查看的任务类型。所以,我决定看看我是否可以为Orange编写自己的小部件来完成任务。

我试图使用Orange3;当我使用WinPython时,这似乎是最好的选择。我必须说,通过创建小部件的文档(对于Orange2)和Orange3小部件的代码相当令人印象深刻 - 编写得非常好,易于使用来实现我想要做的事情。

在编写了几个小部件后,如何将它们导入Orange3?小部件创建教程适用于Orange2(在Python 2.7中),我还没有让它适用于Orange3。

我的项目目前还很小:

dir/
  orangepandas/
    __init__.py
    owPandasFile.py
    pandasQtTable.py
  setup.py

setup.py目前包含以下内容:

from setuptools import setup

setup(name='orangepandas',
      version='0.1',
      packages=['orangepandas'],
      entry_points={'Orange.widgets': 'orangepandas = orangepandas'}
      )

当我在此运行python setup.py install然后尝试打开Orange3画布时,我在新组中看不到我闪亮的新小部件。

1 个答案:

答案 0 :(得分:2)

在跟踪Orange3如何导入外部库之后,似乎Orange依赖于现有的实际窗口小部件文件,而不是在egg(zipped)文件中。添加

zip_safe=False

到设置选项允许Orange3正确导入小部件。 Orange3在canvas / registry / discovery.py中的os.path.exists中使用cache_can_ignore来检测路径是否存在,如果不存在,则不会尝试导入它。使用zip_safe=False可确保插件保持未压缩状态,以便可以访问各个文件。

(对于下一个试图做我正在做的事情的人。)