2015-01-20 63 views
1

我正在使用熊猫来做一些数据分析。我公司的其他人想要以类似的方式处理数据,但不希望使用编程语言来完成。在大量的谷歌搜索之后,我发现了Orange,它具有我想要人们做的完美界面。但是,这些小部件不会执行我们正在查看的任务类型。所以,我决定看看我是否可以为Orange制作我自己的小部件来完成这些任务。如何添加附加到Orange3

我正在尝试使用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文件安装这个,然后尝试打开Orange3画布,我没有看到我的闪亮的新小部件在其新组。

回答

2

通过跟踪Orange3如何导入外部库后,似乎Orange依赖于实际的小部件文件存在,而不是在鸡蛋(压缩)文件中。添加

zip_safe=False 

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

(对于下一个尝试做我在做什么的人)。