簡體   English   中英

自定義Python模塊未導入

[英]Custom Python module not importing

我似乎無法超越這一點,也不太了解正在發生的事情。 我有一個包含兩個類文件的目錄。 從該目錄中使用REPL,我可以導入兩個文件並執行它們的邏輯。 從其運行main()的父目錄中,只有一個類文件可見,頁表。

該項目的結構目前是

project/
    src/
        __init__.py # empty
        pagingsimulation.py # main() imports memory
        process.py
        memory/
            __init__.py # imports pagetable.py
            pagetable.py # visible
            page.py # error

pagessimsim.py能夠導入內存/並實例化pagetable.PageTable,但是一旦我創建了page.py並讓pagetable.py導入了page.py,pagingsimulation.py現在就會在執行時引發此錯誤。

Traceback (most recent call last):
  File "pagingsimulator.py", line 5, in <module>
    import memory
  File "src/memory/__init__.py", line 1, in <module>
    from .pagetable import PageTable
  File "src/memory/pagetable.py", line 1, in <module>
    import page
ImportError: No module named 'page'

在我當前擁有的內存/__init__.py中,

    from .pagetable import PageTable

...但是嘗試了許多其他變體而沒有成功。

我嘗試了多種方法,並對此進行了一段時間的研究,也許這是我現在看不到的東西。 是什么導致我的自定義模塊從main()運行時相互導入?

我懷疑該解決方案是一個路徑問題,更具體地說,是與模塊一旦導入到父文件pagesimulation.py中后的交互方式有關。

因此,要解決此問題,它與__init__.py無關,而是我如何從pagetable.py中訪問page.py。

因此,pagingsimulator.py使用,

import memory

在內存中, init .py文件具有

from .pagetable import PageTable

為了使PageTable訪問Page,必須使用import語句,

from memory import Page

在我看來,這有點時髦,但在失敗了很多次之后,我想說一種更干凈的方法可以做到這一點,但是暫時,我會取勝,並希望將這個問題留在這里對我有利。在搜索過程中找不到相似的內容。

暫無
暫無

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

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