簡體   English   中英

Python無法導入嵌套模塊

[英]Python unable to import nested module

我目前正在用 Python 編寫一個庫。 我正在嘗試使用我在模塊中定義的類,但我無法在 main.py 中使用它。 在 Selector 和 SeasonSelector 中,我定義了兩個具有相同文件名的類。 我收到以下錯誤:

模塊“選擇器”中沒有名稱“選擇器”

main.py

import pyf1

testSeasonSelector = pyf1.Selectors.SeasonSelector()
testSelector.loadData()

pyf1/__init__.py

from Selectors.Selector import Selector
from Selectors.SeasonSelector import SeasonSelector

目錄

├── main.py
└── pyf1
    ├── Selector.pyc
    ├── Selectors
    │   ├── SeasonSelector.py
    │   ├── SeasonSelector.pyc
    │   ├── Selector.py
    │   ├── Selector.pyc
    │   └── __init__.pyc
    ├── __init__.py
    ├── __init__.pyc
    ├── __pycache__
    │   └── __init__.cpython-38.pyc
    └── data

你的目錄應該是這樣的

├── main.py
└── pyf1
    ├── selector.pyc
    ├── selectors
    |   ├── __init__.py
    │   ├── season_selector.py
    │   ├── season_Selector.pyc
    │   ├── selector.py
    │   ├── selector.pyc
    │   └── __init__.pyc
    ├── __init__.py
    ├── __init__.pyc
    ├── __pycache__
    │   └── __init__.cpython-38.pyc
    └── data

您的目錄不是沒有init .py 的認證包,因此您無法進行導入語句。 我還冒昧地更正了您如何命名模塊以適應良好的 Python 命名約定\\實踐。 有了這個,您應該能夠從構建的包中導入而不會出現問題

我設法找到了解決方案。

問題是我沒有使用正確的語法。 一旦我添加了缺少的__init__()文件,我就使用了導入語句Import .parent_file from ParentClass然后允許我按照我想要的方式將功能向上傳遞。

在 Selectors 目錄中,我可以使用from .selector import __SelectorSeasonSelector使用

此外 - 我沒有在我的sys.path包含 PyF1,因此 python 無法掃描目錄。 這包括在上面的語法中,讓我可以做我想做的事。

暫無
暫無

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

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