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”!从名称中删除这些负号可以解决导入问题。