簡體   English   中英

如何在自己的包中使用自己的 Python 包? ModuleNotFoundError:沒有命名的模塊

[英]How to use own Python Packages within the own packages? ModuleNotFoundError: No module named

我使用以下結構創建了一些代碼:

├── 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”。 我遇到了一些錯誤,因為顯然我應該在 a.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”導入函數。

我真的不知道發生了什么。 我嘗試了所有方法並在 web 上搜索它,但沒有好的結果。

如果你們中的一些人能幫助我,我會很高興。

我猜錯誤是因為只有字母而顯示的......

編輯這部分並試一試:

from packages import module_two

該錯誤是因為您保存了名為“packages”的文件夾,並且您試圖從“package”導入 module_two,所以它給出了錯誤..

讓我知道它是否有效:)

原因是在導入其他文件中的方法時,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:

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM