本文目錄一覽:
python中不同目錄下導包問題
你太多概念不清了。
你只是修改了sys.path,並沒有執行import.
sys.path裡面添加的是test2的路徑。這樣只能import method2,然後調用 method2.xxx。不可能寫 test1.number(10)
一般不建議在代碼裡面操作sys.path。你這裡test1/test2都定義成了package,一般是在test2上一級目錄執行程序,或者把test2的上一級目錄添加到PYTHONPATH環境變數。這樣test1, test2所有內容都可以直接import,可以互相調用。
建議先好好看書。把基礎打好。
如何在python3中正確導入同一目錄下的模塊
因為要absolute_import,這樣import webchat_sdk.basic應該沒問題了。
在 Python 2 裡面可以使用 import foo來導入相同目錄包下的模塊foo,在 Python 3 裡面就是導入的項目根目錄(最上層有__init__.py的目錄)包foo。 也就是說 Python 3 默認就是絕對導入的,import .foo只是相對於絕對導入來說的,並不是相對導入。
python相對導入?
除了讓包內導入更加顯式,這個功能的一部分設計初衷是,為了幫助腳本解決同名文件出現在模塊搜索路徑上多個不同位置時的二義性。考慮包目錄,這定義了一個名為mypkg 的包,其中含有名為mypkg.main和mypkg.string 的模塊。現在,假設模塊main試圖導入名為string的模塊。在 Python 2.X和更早版本中,Python會先尋找mypkg目錄以執行相對導入。這會找到並導入位於該處的string.py文件,將其賦值給mypkg.main模塊命名空間內的名稱string。不過,這一導入的本意可能是要導入Python標準庫的string模塊。可惜的是,在這些Python版本中,無法直接忽略mypkg.string 去尋找位於模塊搜索路徑更右側的標準庫中的string模塊。此外,我們無法使用完整包導入路徑來解決這個問題,因為我們無法依賴在每台機器上的標準鏈接庫路徑。換句話說,包中的簡單導入可能具有二義性而且容易出錯。在包內,我們無法確定imports pam語句指的是包內的模塊還是包外的模塊。一種可能的後果是,一個局部的模塊或包會在不經意間隱藏了sys.path 上的另一個模塊。在實踐中,Python使用者可以避免為他們自己的模塊重複使用標準庫模塊的名稱(如果需要標準string庫,就不要把新的模塊命名為string)。但是,一個包還是有可能意外地隱藏標準庫模塊。再者,Python 以後可能新增標準庫模塊,而其名稱可能剛好就和自己的一個模塊同名。而依賴於沒有點號開頭相對導入的程序代碼同樣也不容易理解,因為讀者可能對希望使用哪個模塊而感到困惑。所以我們最好能在代碼中顯式地指出導入的解析過程。
python怎樣導入自己寫的包
python導入自己寫的包的方法:
1、導入同級目錄下的文件可以用「import 包名」導入
2、導入子目錄文件可以用「from 包名 import 文件名」導入
更多Python知識,請關註:Python自學網!!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/279650.html