1

我正在使用 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 画布时,我在其新组中看不到我闪亮的新小部件。

4

1 回答 1

2

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

zip_safe=False

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

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

于 2015-01-21T22:58:32.087 回答