我想用Orange软件进行科学分析 。 使用sudo easy_install orange
在x86_64 Ubuntu 12.04
安装x86_64 Ubuntu 12.04
,使用Python 2.7.3
,运行良好。 但是,这个软件包似乎不能直接使用:
11:30:43 leon@t410i:~$ python Python 2.7.3 (default, Apr 20 2012, 22:39:59) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import orange Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named orange >>>
但是,从适当的dist-packages子目录运行Python时导入软件包可以正常工作:
11:34:02 leon@t410i:~$ cd /usr/local/lib/python2.7/dist-packages/Orange-2.5a4-py2.7-linux-x86_64.egg/Orange 11:34:32 leon@t410i:/usr/local/lib/python2.7/dist-packages/Orange-2.5a4-py2.7-linux-x86_64.egg/Orange$ python Python 2.7.3 (default, Apr 20 2012, 22:39:59) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import orange >>> orange.__file__ 'orange.so' >>>
问题是什么? 当Python从文件系统中的任何地方调用时,dist-packages中包含的其他软件包工作正常。
导入Orange的语义已经在2.5版本左右改变了。 如果使用以前版本编写的代码,则必须进行一些更改,请参阅http://orange.biolab.si/blog/2011/12/20/orange-25-code-conversion/ 。 重要的是,需要取代:
import orange
有:
import Orange
(注意第二个例子中的大写字母O)。
副作用是其他子模块不再需要显式导入; 单一
import Orange
是足够的,而不是例如
import orange, orngTest, orngStat, orngTree