【问题标题】:How to import a module from a directory?如何从目录中导入模块?
【发布时间】:2013-06-25 16:09:22
【问题描述】:

在我的系统上,我有两个版本的 Python(要调用它们,我在命令行中键入 pythonpython2)。当我使用 Python 的第一个版本时,我无法导入 sklearn 模块,但我可以在 Python 的第二个版本中进行。

我想使用第一个版本的python(因为那里有其他模块),同时我希望能够从这个版本的Python中import sklearn

我的解决方案是使用:

import sys
sys.path.append('location_of_the_sklearn_module')

为了找到sklearn 模块的位置,我启动了一个python 会话(使用python 的第二个版本,sklearn 在其中工作)。 I 类型:

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

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

【问题讨论】:

  • 如果你的第一个Python实际上是Python 3,那么据我所知,sklearn还不支持。
  • @voithos,python 的两个版本都是 2.7.3。

标签: python python-import sys sys.path


【解决方案1】:

在导入包的时候,需要将包的父目录添加到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 中正确导入。

【讨论】:

    猜你喜欢
    • 2019-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-31
    • 2020-03-02
    • 1970-01-01
    • 2019-06-19
    相关资源
    最近更新 更多