【问题标题】:How to use own Python Packages within the own packages? ModuleNotFoundError: No module named如何在自己的包中使用自己的 Python 包? ModuleNotFoundError:没有命名的模块
【发布时间】:2021-03-18 21:09:33
【问题描述】:

我使用以下结构创建了一些代码:

├── project
|  ├── .vscode
|  |   └── settings.json
|  ├── packages
|  |   ├── __init__.py
|  |   ├── module_one.py
|  |   └── module_two.py
|  └── main.py

module_one 内容

def functionModuleOne():
    print('functionModuleOne')

module_two 内容

import module_one
module_one.functionModuleOne()

def functionModuleTWO():
    print('functionModuleTWO')

主要内容

from package import module_two

关键是我试图在“module_two”中导入“module_one”。我遇到了一些错误,因为显然我应该在 .vscode/settings.json 中指定模块的路径。所以,我做到了

json里面有什么:

{
    "python.analysis.extraPaths": [".\\package"]
}

然后,它显然工作得很好。我执行了“module_two.py”文件,没有出错。

但是,当我尝试执行文件“main.py”时,出现以下错误:ModuleNotFoundError: No module named "module_one"

我需要这个结构,因为“module_two”需要从“module_one”导入函数,“main”需要从“module_two”导入函数。

我真的不知道发生了什么。我尝试了所有方法并在网上搜索它,但没有很好的结果。

如果你们中的一些人能帮助我,我会很高兴。

【问题讨论】:

    标签: python visual-studio-code package pylance


    【解决方案1】:

    原因是在导入其他文件中的方法时,VS Code默认从导入文件的父文件夹开始搜索。显然,在“main.py”文件中,根据“import module_one”是找不到文件“module_one”的。

    您可以参考以下方法: 请在“module_two”文件中使用以下代码:

    import sys 
    sys.path.append("./")
    
    from emo.module_one import functionModuleOne
    functionModuleOne()
    
    def functionModuleTWO():
        print('functionModuleTWO')
    

    from emo.module_one import functionModuleOne”:(“main.py”可以根据这个路径找到“module_one”),

    sys.path.append("./")”:将文件“module_one”的路径添加到“module_two”的路径中。

    运行 main.py:

    【讨论】:

    • 完美!它工作得很好!我不知道 VS Code 默认从导入文件的父文件夹开始。谢谢你的解释!
    【解决方案2】:

    我猜错误是因为只有字母而显示的......

    编辑这部分并试一试:

    from packages import module_two
    

    错误是因为您保存了名为“packages”的文件夹,并且您尝试从“package”导入 module_two,所以它给出了错误..

    让我知道它是否有效:)

    【讨论】:

    • 其实是我把代码带到这里的时候打错了。但是,无论如何,谢谢你的回答!
    猜你喜欢
    • 1970-01-01
    • 2019-07-02
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-15
    • 2019-12-06
    相关资源
    最近更新 更多