4

我想使用 Orange 软件包进行科学分析。安装在x86_64 Ubuntu 12.04, with上Python 2.7.3, 顺利, 使用sudo easy_install orange. 但是,该软件包似乎无法直接使用:

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 中的其他包工作正常。

4

1 回答 1

8

导入 Orange 的语义在 2.5 版左右发生了变化。如果使用使用以前版本编写的代码,则必须进行一些更改,请参阅http://orange.biolab.si/blog/2011/12/20/orange-25-code-conversion/。至关重要的是,需要更换:

import orange

和:

import Orange

(note the capital letter O in the second example).

A side effect is that other sub-modules no longer need to be explicitly imported; a single

import Orange

is enough, instead of e.g.

import orange, orngTest, orngStat, orngTree
于 2012-08-08T09:52:57.267 回答