导入Orange时出现“ImportError: no module named orange”错误

4

我想使用Orange包进行科学分析。在x86_64 Ubuntu 12.04上安装,使用sudo easy_install orange进行了安装,配合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中包含的其他软件包可以正常工作。
1个回答

8

导入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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接