Python安装在本地目录。

我的目录树是这样的:

(local directory)/site-packages/toolkit/interface.py

我的代码在这里:

(local directory)/site-packages/toolkit/examples/mountain.py

为了运行这个例子,我编写了python mountain.py,在代码中我有:

from toolkit.interface import interface

我得到了一个错误:

Traceback (most recent call last):
  File "mountain.py", line 28, in ?
    from toolkit.interface import interface
ImportError: No module named toolkit.interface

我已经检查过系统了。这里有目录/site-packages。此外,我在工具包文件夹中有__init__.py.bin文件,以向Python表明这是一个包。我在examples目录中也有一个__init__.py.bin。

我不知道为什么Python无法在sys.path中找到该文件。什么好主意吗?会是权限问题吗?我需要一些执行许可吗?


当前回答

我也有类似的问题。我创建了一个名为python3.6的新虚拟环境。

conda create -n python3.6 python=3.6
pip install pandas

一切正常,但当我运行脚本时,发生了一个错误

ModuleNotFoundError: No module named 'pandas'

我发现Python包的元数据和pip的缓存已经更新,但它实际上没有下载pandas包。 所以我试着让皮普重新安装

pip uninstall pandas --no-cache-dir
pip install pandas 

这就解决了问题。

其他回答

使用sys.path.append对我有用,就像在回答中提到的那样。起初,我认为它不能工作,直到我意识到在目录路径之前有一个空格。所以要确保路径前没有错别字或空格

您必须将文件__ init__.py放在您要导入的文件所在的同一目录中。 不能尝试从PYTHONPATH上配置的两个文件夹中导入同名的文件。

例如: /etc/environment

PYTHONPATH = PYTHONPATH:美元/ opt / folder1: / opt / folder2

/opt/folder1/foo

/opt/folder2/foo

而且,如果你试图导入foo文件,python将不知道你想要哪个。

从foo import…>>> importerror:没有foo模块

所有python文件的文件编码必须为utf-8。

请看这里:https://github.com/jupyter/notebook/issues/3166#issuecomment-581332097

我发现改变别名文件夹(Mac)的名称(通过GUI)会导致加载模块的问题。如果原文件夹名称已更改,请重新制作符号链接。我不确定这种行为有多普遍,但调试起来很令人沮丧。

我也遇到了同样的问题:导入错误。此外,库已经100%正确安装。问题的根源是在我的PC上安装了3版的python (anaconda包)。这就是为什么图书馆没有安装在正确的地方。之后,我只是在我的IDE PyCharm中更改了适当的python版本。