我想使用Orange包scientific analysis。使用x86_64 Ubuntu 12.04
,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中包含的其他包工作正常。
答案 0 :(得分: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