【问题标题】:python doesn't recognize a folderpython无法识别文件夹
【发布时间】:2021-12-10 05:47:12
【问题描述】:

我正在开发 linux ubuntu 20.04。我使用 Pycharm IDE 打开了新的 python 项目,并安装了一个名为 aihwkitdocumentationsource 的包。

运行源代码给出的示例时,这些示例使用从名为inference 的目录导入的模块,例如示例06_lenet5_hardware_aware.py,我收到错误消息: ModuleNotFoundError: No module named 'aihwkit.inference'

尽管与inference 位于同一目录中的其他文件夹也被导入并且它们运行良好。我正在尝试手动导入,但不知道该怎么做。

这是文件夹的层次结构:我这样调用推理: from aihwkit.inference import PCMLikeNoiseModel 当模块PCMLikeNoiseModel源代码位于以下路径时,来自文件examples/06_lenet5_hardware_aware.pysrc/aihwkit/inference/noise/pcm.py

请注意,问题在于找不到名称 aihwkit.inference,而其他名称(例如 aihwkit.nn)不会引发任何错误,它们位于与 inference 相似的路径中。

我正在添加层次结构的图片以防万一:

如何手动导入此文件夹?

谢谢

【问题讨论】:

  • 您能否检查不同__init__.py 文件的内容。也许您重新定义了相同的符号名称(作为模块名称),这将具有优先权。否则:准确检查 Python 错误。哪个模块导致异常。某些模块可能会被编写,以便他们期望(也)具有不同的根目录(因此安装了 pip,或者只是在 PYTHONPATH 中正确添加)

标签: python import pycharm package


【解决方案1】:

由于您使用的是 Linux,因此您可以尝试在导入之前安装您的包:

sudo apt-get install python-#name_of_your_package

写在你的终端里,或者你可以尝试用pip安装它

【讨论】:

  • 感谢您的评论,但我已经安装了包aihwkit。出于某种原因,python 解释器会看到src 中除inference 之外的所有文件夹,所以我试图以某种方式强制解释器看到它。我无法使用 pip 安装 inference,它不是一个单独的包,它带有 aihwkit...
  • 可能是与 CUDA 支持有关的问题。您可能必须使用 inplace 命令来设置您的 CUDA,例如 python setup.py build_ext --inplace -DUSE_CUDA=ON,然后包含您的 aihwkit 路径。欲了解更多信息,您可以查看here
  • 感谢您的帮助,这实际上是我的帖子...我已按照他们的指示进行操作,但仍然遇到同样的问题。也许我在运行命令时做错了什么,但我不确定是什么,这就是我尝试手动添加文件夹的原因