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中找到该文件。什么好主意吗?会是权限问题吗?我需要一些执行许可吗?


当前回答

你正在阅读这个答案说你的__init__.py是在正确的地方,你已经安装了所有的依赖项,你仍然得到ImportError。

我也遇到了类似的问题,除了我的程序在使用PyCharm运行时运行良好,但当我从终端运行时出现上述错误。在深入研究之后,我发现PYTHONPATH没有项目目录的条目。所以,我设置PYTHONPATH每个Import语句在PyCharm上工作,但不是从终端:

export PYTHONPATH=$PYTHONPATH:`pwd`  (OR your project root directory)

还有另一种方法可以使用sys。路径为:

import sys
sys.path.insert(0,'<project directory>') OR
sys.path.append('<project directory>')

您可以根据希望搜索项目的顺序使用插入/追加。

其他回答

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

致所有还有这个问题的人。我相信Pycharm与import混淆了。对我来说,当我写“从命名空间导入一些东西”时,前一行会用红色划线,表明有错误,但有效。然而,“from .namespace import something”没有下划线,但也不起作用。

Try

try:
    from namespace import something 
except NameError:
    from .namespace import something

在我的例子中,因为我使用PyCharm和PyCharm为项目文件夹中的每个项目创建了一个“venv”,但它只是python的一个迷你env。虽然您已经在Python中安装了所需的库,但在您的自定义项目“venv”中,它不可用。这是PyCharm中出现'ImportError: No module named xxxxxx'的真正原因。 要解决此问题,您必须按以下步骤向项目自定义env添加库:

在PyCharm中,从菜单“文件”->设置 在“设置”对话框中,输入“项目:XXXProject->项目解释器” 点击“添加”按钮,会弹出“Available Packages”对话框 搜索你的库,点击“安装包” 然后,所有你需要的包将安装在你的项目自定义的“venv”文件夹。

享受。

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

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

要将一个目录标记为包,你需要一个名为__init__.py的文件,这有帮助吗?