導航:首頁 > 編程語言 > python導入

python導入

發布時間:2022-02-07 07:28:59

python怎樣導入自己寫的包

python導入自己寫的包的方法:

1、導入同級目錄下的文件可以用「import 包名」導入

2、導入子目錄文件可以用「from 包名 import 文件名」導入

更多Python知識,請關註:Python自學網!!

② 如何導入python中的模塊

定義模塊,只要使用文本編輯器,把一些python代碼輸入到文本中,然後以.py為後綴名進行保存,任何此類文件都會被認為是python模塊。
比如說,下面的代碼輸入到一個文件中,就可以看作是一個模塊:
def printme(var): print varif __name__ == '__main__': printme(1)

假設說輸入到a.py中,那麼import a就可以把這個模塊導入。
然後可執行a.printme(3),屏幕即可列印出3:
>>> a.printme(3)3>>>

一個模塊頂層定義的變數,會自動變成模塊的屬性。例如:
data=[1,2,3]def printme(var): print varif __name__ == '__main__': printme(1)

data變數就是模塊的一個屬性。其實printme也是一個屬性,只不過是一個函數罷了。
引入模塊示例如下:(假定此時data=[1,2,3]未定義)

>>> import a>>> a.data Traceback (most recent call last): File "<pyshell#1>", line 1, in <mole> a.dataAttributeError: 'mole' object has no attribute 'data'>>> reload(a)<mole 'a' from 'C:/py\a.pyc'>>>> a.data Traceback (most recent call last): File "<pyshell#3>", line 1, in <mole> a.dataAttributeError: 'mole' object has no attribute 'data'>>>

從上述提示可以看出data屬性未定義,此時再在a.py文件中定義data=[1,2,3],重新載入a模塊,並輸出data屬性:
>>> reload(a)<mole 'a' from 'C:/py\a.py'>>>> a.data[1, 2, 3]>>>

這里的reload函數可以重新載入一個模塊。如果在模塊代碼中更改了,那麼需要重新載入。
上面a.data,就是訪問模塊中的屬性。
上面的例子是導入一個文件作為一個模塊。
其實python的模塊導入還有更豐富的內容。
除了模塊名之外,python也可以導入指定目錄路徑。python代碼的目錄就稱為包。因此,這類導入就稱為包導入。事實上,包導入是把計算機上的目錄變成python的一個命名空間。而屬性就是目錄中包含的子目錄或者是模塊文件。
看下面例子:
在我的桌面上有一個aa文件夾,裡面有bb文件夾,bb裡面有a.py這個文件。
那麼在aa和bb文件夾中分別放置一個__init__.py,之後,在命令行中import aa.bb.a,就可以導入模塊a了。

③ python 導入模塊

在文件夾a的下面,新建一個__init__.py的py文件,
然後添加ab文件路徑為系統路徑:sys.path.append(ab文件路徑)
最後利用:from a import a即可。

④ python導入py文件報錯怎麼辦

python有大量的內置模塊,可以方便地導入。同樣python也可以導入其它人寫的py程序,以利用別人寫好的類和函數。

1、在預設狀態下,導入一個已編寫好的py文件用import 跟上py文件名,有時系統會出現SyntaxError: invalid syntax的錯誤:

4、寫入目錄後,再執行import上面寫的py就可以成功了

注意:如果我們需要導入的模塊是放在文件夾裡面,那麼,文件夾裡面必須要添加__init__.py文件,以使得python能夠找到模塊的位置。__init__.py可以為空,只要它存在,就表明此目錄應被作為一個package處理。當然,__init__.py中也可以設置相應的內容。

本人的__init__.py內容如下:

################################################################################
# __init__.py
# This is here to make python see Profile folder

⑤ 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 模塊可以相互導入嗎

模塊A中import B,而在模塊B中import A。這時會怎麼樣呢?這個在Python列表中由RobertChen給出了詳細解釋,抄錄如下:[A.py]
from B import D
class C:pass

[B.py]
from A import C
class D:pass

為什麼執行A的時候不能載入D呢?

如果將A.py改為:import B就可以了。

這是怎麼回事呢?

RobertChen:這跟Python內部import的機制是有關的,具體到from B import D,Python內部會分成幾個步驟:

⑦ 如何把一個python包導入到python庫中

Python 運行環境在查找模塊時是對 sys.path 列表進行遍歷,如果我們想在運行環境中添加自定義的模塊,主要有以下三種方法:
1. 在sys.path列表中添加新的路徑(只能對執行了 sys.path.append 命令的當前 Python 運行環境起作用,對其他運行環境不起作用,也即「一次性」的)。
>>> import sys
>>> sys.path
>>> sys.path.append('/home/xxx/yyy') #目錄/home/xxx/yyy包含你所需要的包或模塊
設置 PYTHONPATH 環境變數(永久性添加):
2. 將包或模塊復制到 sys.path 列表中的目錄(通過 sys.path 查看)里(如 /home/test/lib/python2.7/site-packages/ 目錄)。
3. 最簡單的辦法是用 .pth 文件來實現。Python 在遍歷已有的庫文件目錄(sys.path中指定)過程中,如果見到一個 .pth 文件,就會將該文件中所記錄的路徑加入到 sys.path 設置中,這樣 .pth 文件說指明的庫也就可以被 Python 運行環境找到。
$cd /home/test/lib/python2.7/site-packages/
$touch test.pth
$vim test.pth
$添加一行包或模塊所在的目錄(如:/home/test/somePackage/)
則test.pth文件內容為:
/home/test/somePackage/

⑧ python form import導入另一個py文件

python導入另一py腳本文件,例如導入xxx.py,命令是from xxx import *;
這個命令得在xxx.py在pythonpath里的時候才有用,或者是和當前在運行的python腳本在同一目錄之下。

⑨ Python怎麼導入文件

Python的import包含文件功能就跟PHP的include類似,但更確切的說應該更像是PHP中的require,因為Python里的import只要目標不存在就報錯程序無法往下執行。要包含目錄里的文件,PHP中只需要給對路徑就OK。Python中則不同,下面來看看這個例子。

目錄結構:

重新執行a.py,一切OK!

⑩ 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導入相關的資料

熱點內容
銀河麒麟字體庫存在哪個文件夾 瀏覽:956
魔獸加丁伺服器的航空叫什麼 瀏覽:152
花冠改裝案例哪個app多 瀏覽:515
成績單app哪個好用 瀏覽:140
北美程序員vs國內程序員 瀏覽:181
php解析xml文檔 瀏覽:121
石墨文檔APP怎麼橫屏 瀏覽:185
牆主鋼筋加密和非加密怎麼看 瀏覽:144
金山區文件夾封套定製 瀏覽:708
soho程序員 瀏覽:672
java位元組截取 瀏覽:525
php提交作業 瀏覽:815
房產還沒解壓可以辦理贈予嗎 瀏覽:224
java毫秒轉分鍾 瀏覽:753
模式識別中文pdf 瀏覽:774
c語言平均數字編譯錯誤 瀏覽:171
單片機算交流 瀏覽:45
php自適應網站 瀏覽:467
2b2t伺服器怎麼獲得許可權 瀏覽:816
c語言javaphp 瀏覽:804