Python 派林;无法导入";错误,但与Pycharm配合使用效果良好

Python 派林;无法导入";错误,但与Pycharm配合使用效果良好,python,python-3.x,pycharm,importerror,pylint,Python,Python 3.x,Pycharm,Importerror,Pylint,我的程序的基本结构如下所示: top_dir __init__.py readme.rst sub_dir __init__.py sub_sub_dir __init__.py example_module.py sub_sub_dir2 __init__.py module_with_import.py 在Pycharm中,所有进口产品都能正常工作。例如,我在“module_wi

我的程序的基本结构如下所示:

top_dir
__init__.py
readme.rst
    sub_dir
    __init__.py
        sub_sub_dir
        __init__.py
        example_module.py
        sub_sub_dir2
        __init__.py
        module_with_import.py
在Pycharm中,所有进口产品都能正常工作。例如,我在“module_with_import.py”中使用以下导入:

from sub_dir.sub_sub_dir.example_module import function
但是,如果在模块_上使用_import.py运行pylint,则会出现以下错误:

Unable to import 'sub_dir.sub_sub_dir.example_module' (import-error)
有人看到这里出了什么问题吗?

模块(包)名称中不能有减号。将
Sub-dir
重命名为
Sub-dir
Sub-Sub-dir
重命名为
Sub-Sub-dir
Sub-Sub-dir2


下一步阅读

top_dir和sub_dir是否命名为同一事物?如果是这样,并且top_目录中没有要导入的文件(仅包含在该目录中的模块),请删除
\uuu init\uuu.py
\uuu init\uuuu.pyc
文件,然后重试

设想以下情况:

foo
__init__.py
  foo
  __init__.py
     bar
     __init__.py
     baz.py

如果您的导入语句类似于
import foo.bar.baz
from foo.bar import baz
,并且您正在从顶级“foo”运行脚本,则导入将失败。您需要告诉python顶层不是模块,或者需要将所需路径插入sys.path。

PyCharm项目设置(项目结构)是否有自定义设置?PyCharm在执行之前修改PYTHONPATH,将所有源文件夹包含在PYTHONPATH环境变量中。我想您应该尝试在
Sub-Sub-dir2
中使用import.py作为当前工作目录运行PyLint,比如
PyLint模块。在
Sub dir
目录中尝试
pylint Sub dir/Sub-Sub-dir2/module_with_import.py
。如果我将目录更改为Sub_dir并使用_import.py键入pylint Sub_dir/Sub-Sub-dir2/module_,我将得到以下错误:
如果运行'pylint'sub_sub_dir2/module_与sub_dir中的_import.py一起运行,但结果相同。我仍然得到相同的错误:(.同时,我还创建了一个.pylintrc文件,内容如下:
[General]init hook='import sys;sys.path.append(“home/username/PycharmProjects/top_dir”)“
很遗憾没有成功。顺便说一句:在我的项目的旧版本中,我没有收到此错误,尽管它包含相同的导入。非常奇怪,但必须有一个解决方案。显示实际的shell会话,而不是假设的包感谢您的答复。我的错,我的实际包(模块)名称中没有负号。我编辑了我的问题。包含python文件的文件夹名称中有负号,这导致错误“无法导入pathlib”!从名称中删除这些负号可以解决导入问题。