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


当前回答

一个简单的解决方案是使用python -m PIP install <library-name>来安装模块,而不是PIP install <library-name> 在管理限制的情况下,您可以使用sudo

其他回答

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

你正在阅读这个答案说你的__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>')

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

Does

(local directory)/site-packages/toolkit

有__init__.py?

为了让导入遍历你的目录,每个目录必须有一个__init__.py文件。

我也犯了同样的错误。这是由于有人在与我的脚本相同的文件夹中创建了一个文件夹,该文件夹的名称与我从其他地方导入的模块冲突。它没有导入外部模块,而是在这个显然不包含预期模块的文件夹中查找。

在ubuntu apt-get安装程序中,python3版本的包通常被命名

python3-XYZ

以及python2版本

python-XYZ

根据经验,请尝试错误消息中提到的包的python3-XYZ或python-XYZ。 不需要猜测,使用RegEx搜索apt缓存。然后:

$ apt-cache search "python.*toolkit.*interface"
python3-cli-helpers - easy command-line apps with Python
python3-exam - Python module to help write better tests
python3-fltk - Python wrapper for the Fast Light Toolkit
python3-mpltoolkits.basemap - matplotlib toolkit to plot on map projections (Python 3)
python3-nltk - Python3 libraries for natural language processing
python3-onnx - Open Neural Network Exchange (ONNX) (Python)
python3-paraview - Parallel Visualization Application. python-support
python3-pyswarms - research toolkit for particle swarm optimization in Python
python3-wxgtk-media4.0 - Python 3 interface to the wxWidgets Cross-platform C++ GUI toolkit (wx.media)
python3-wxgtk-webview4.0 - Python 3 interface to the wxWidgets Cross-platform C++ GUI toolkit (wx.html2)
python3-wxgtk4.0 - Python 3 interface to the wxWidgets Cross-platform C++ GUI toolkit
python3-xapian - Xapian search engine interface for Python3
wxglade - GUI designer written in Python with wxPython

它没有找到它。

请注意,这种apt-get技巧有时也需要用于依赖的包。

我对python2.7的flask包有相同的错误消息,当我尝试时它消失了:

sudo apt-get install python-flask

因此,试一试:

sudo apt-get install python-[YOURPYTHONVERION]-[YOURERRORPACKAGE]

或者检查上面提到的依赖关系。