簡體   English   中英

找不到Python模塊嗎?

[英]Python Modules not Being Found?

我是Python的新手,試圖了解如何正確設置模塊。

我有以下幾點:

 dir1
    pack1.py
        dir2
           pack2.py

...當然,在我的目錄中,我有__init__.py

現在,我正在嘗試從pack1.py繼承pack2.py

得到以下內容:

class Pack2(Pack1):
    def __repr__(self):
       ....my code goes here....

我想將此導入到程序中,以便可以使用Pack2

我的問題:我在嘗試弄清楚要在我的程序和pack2.py文件中使用的import語句時遇到了麻煩。

我嘗試過(在我的程序中):

from dir1.dir2 import pack2

並在Pack2中

from dir1 import pack1

但沒有骰子。 這看起來正確嗎?

您設置了Python路徑嗎? 如果您還沒有,那么Python解釋器將不可能找到您的所有模塊。

每個腳本的目錄都位於Python路徑中,因此模塊可以將其他模塊導入相同或更低的目錄中。 但是需要從父目錄導入內容的模塊需要做一些額外的工作。

解決方案是修改sys.path:

import sys
# Add parent directory to path
sys.path.append('..')

在python中, import module不會使import module中定義的所有名稱直接在當前名稱空間中可用...您需要使用module.name來訪問它們。 如果要直接獲取模塊中定義的所有名稱,則必須執行類似from module import *

為了能夠確定問題出在哪里,應該顯示__init__.py文件的內容,但是假設它們是僅用於將子目錄用作模塊而創建的空文件,那么我認為您應該使用:

  • 在主程序中, from dir1.dir2.pack2 import Pack2
  • 在pack1.py中,您應該使用from dir2.pack2 import Pack2

暫無
暫無

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

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