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 

这就解决了问题。

其他回答

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

在遭受同样的问题后,我发现我的解决方案是从我的项目中删除所有pyc文件,似乎这些缓存文件以某种方式导致了这个错误。

我发现做到这一点最简单的方法是在Windows资源管理器中导航到我的项目文件夹并搜索*。然后选择所有(Ctrl+A)并删除它们(Ctrl+X)。

我可以通过删除特定的pyc文件来解决我的问题,但我从未尝试过这样做

在*nix上,还要确保PYTHONPATH配置正确,特别是它具有以下格式:

 .:/usr/local/lib/python

(注意开头的.:,这样它也可以在当前目录上搜索。)

它也可能在其他位置,取决于版本:

 .:/usr/lib/python
 .:/usr/lib/python2.6
 .:/usr/lib/python2.7 and etc.

使用PyCharm (JetBrains套件的一部分),你需要定义你的脚本目录为Source: 右键单击>将目录标记为> Sources Root

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