2015-01-20 115 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可確保插件保持未壓縮狀態,以便可以訪問單個文件。

(對於下一個嘗試做我在做什麼的人)。