在我的系统上,我有两个版本的Python(称之为我在命令行中键入python
和python2
)。当我使用Python的第一个版本时,我无法导入sklearn
模块,但我可以在第二个版本的Python中完成。
我想使用python的第一个版本(因为其他模块在那里可用),同时,我希望能够从这个版本的Python中import sklearn
。
我的解决方案是使用:
import sys
sys.path.append('location_of_the_sklearn_module')
为了找到sklearn
模块的位置,我启动了一个python会话(使用第二个版本的python,其中sklearn工作)。我输入:
import sklearn
sklearn.__file__
结果我得到了:
/home/name/my_name/numpy/local/lib/python2.7/site-packages/sklearn/__init__.pyc
在Python的第一个版本的会话中,我试过:
import sys
sys.path.append('/home/name/my_name/numpy/local/lib/python2.7/site-packages/sklearn')
import sklearn
不幸的是它不起作用。结果我得到了:ImportError: No module named sklearn
有人知道我做错了什么,是否有可能以我尝试的方式达到目标?
答案 0 :(得分:2)
导入包时,需要将包的父目录添加到PYTHONPATH
,而不是包目录本身,所以只需更改...
sys.path.append('/home/name/my_name/numpy/local/lib/python2.7/site-packages/sklearn')
...到...
sys.path.append('/home/name/my_name/numpy/local/lib/python2.7/site-packages')
...虽然它可能不一定在Python 3.x中正确导入。