如何从目录导入模块?

时间:2013-06-25 16:09:22

标签: python python-import sys sys.path

在我的系统上,我有两个版本的Python(称之为我在命令行中键入pythonpython2)。当我使用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

有人知道我做错了什么,是否有可能以我尝试的方式达到目标?

1 个答案:

答案 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中正确导入。