導航:首頁 > 編程語言 > python導入包的方式

python導入包的方式

發布時間:2022-09-28 02:20:22

python 第三方包 source怎麼導入

我們知道,定義在環境變數PYTHONPATH里是可以直接用import導入的。下面我們來操作如何從非pythonpath目錄導入第三方包或者自己定義的包。
假定我們的包有如下的目錄結構:person 是最頂層的包,man、woman、child是子包
person\
__init__.py
person.py
man\
__init__.py
goodman.py
child\
__init__.py
lovelychild.py
woman\
__init__.py
goodwoman.py

首先,我們把包所在目錄(c:\testpackage)加入到sys.path路徑里
>>> import sys
>>> sys.path.append("c:\\testpackage")

注意:路徑分隔符一定要寫成」\\」的
1、用import方式 導入包,此種方式必須寫全包的路徑
>>> import person.person
>>> person.person.printperson()
person
>>> import person.man.goodman
>>> person.man.goodman.printman()
man
>>> import person.woman.goodwoman
>>> person.woman.goodwoman.printwoman()
woman
>>> import person.man.child.lovelychild
>>> person.man.child.lovelychild.printchild()
child

2、用from * import *方式導入包
>>> from person import person
>>> person.printperson()
person
>>> from person.man import goodman
>>> goodman.printman()
man
>>> from person.man.child import lovelychild
>>> lovelychild.printchild()
child
>>> from person.woman import goodwoman
>>> goodwoman.printwoman()
woman

也可以用以下方式:
>>> from person import *
>>> person.printperson()
person
>>> from person.man import *
>>> goodman.printman()
man
>>> from person.man.child import *
>>> lovelychild.printchild()
child

注意:這樣的語句會導入哪些文件取決於操作系統的文件系統;所以我們在__init__.py 中加入 __all__ 變數;該變數包含執行這樣的語句時應該導入的模塊的名字;它由一個模塊名字元串列表組成。

⑵ 在vs上怎麼用python將一個程序引入另一個程序

python中調用另一個程序有多種不同方式,一種是調用本文件下的某個函數來實現調用,另一種是調用模塊或包文件下的函數實現調用,還有一種是通過類方法的方式調用類定義的某段程序。
自身函數的調用時相當方便的,在定義好了函數以後直接按定義的格式調用即可,出現的錯誤為參數數量不匹配。通過包或模塊調用相對自身函數調用比較復雜,需要提前導入包或模塊,常用的方法為import或者fromimport,導入成功的前提是對應的包或模塊在python路徑之下,可以通過sys.path(sys為系統內置模塊可以直接使用importsys導入)來查看python路徑。以導入第三方包文件requests為例。通過類方法的調用需要在調用之前,實例化一個類對象,通過這個類對象來調用類方法,注意第三個方法為私有方法,不允許類外部訪問。

⑶ 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庫中

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導入模塊的方法有哪些

方法一
import modname
模塊是指一個可以交互使用,或者從另一Python 程序訪問的代碼段。只要導入了一個模塊,就可以引用它的任何公共的函數、類或屬性。模塊可以通過這種方法來使用其它模塊的功能。
用import語句導入模塊,就在當前的名稱空間(namespace)建立了一個到該模塊的引用.這種引用必須使用全稱,也就是說,當使用在被導入模塊中定義的函數時,必須包含模塊的名字。所以不能只使用 funcname,而應該使用 modname.funcname

方法二
from modname import funcname
from modname import fa, fb, fc
或者
from modname import *
與第1種方法的區別:funcname 被直接導入到本地名字空間去了,所以它可以直接使用,而不需要加上模塊名的限定* 表示,該模塊的所有公共對象(public objects)都被導入到 當前的名稱空間,也就是任何只要不是以」_」開始的東西都會被導入。
modname沒有被定義,所以modname.funcname這種方式不起作用。並且,如果funcname如果已經被定義,它會被新版本(該導入模塊中的版本)所替代。如果funcname被改成指向其他對象,modname不能不會覺察到。
建議:
1)如果你要經常訪問模塊的屬性和方法,且不想一遍又一遍地敲入模塊名,使用 from mole import
2)如果你想要有選擇地導入某些屬性和方法,而不想要其它的,使用 from mole import
3)如果模塊包含的屬性和方法與你的某個模塊同名,你必須使用import mole來避免名字沖突
4)盡量少用 from mole import * ,因為判定一個特殊的函數或屬性是從哪來的有些困難,並且會造成調試和重構都更困難。

方法三
內建函數__import__()
除了前面兩種使用import關鍵字的方法以外,我們還可以使用內建函數 __import__() 來導入 mole。兩者的區別是,import 後面跟的必須是一個類型(type),而__import__() 的參數是一個字元串,這個字元串可能來自配置文件,也可能是某個表達式計算結果。例如:
mymole = __import__ (』mole_name』)
附註:
1)模塊的內容都放在一個模塊文件中,如 mymole 的內容應該放在PYTHONPATH 目錄下的一個mymole.py中,C實現的除外
2)包可以將幾個模塊名稱空間組織起來, 如A.b 就表示在包A中的一個子模塊b
可以單獨導入某一個子模塊,如Python文檔中給出的例子
import sound.effects.echo
這樣必須使用全稱對裡面的對象進行引用,如
sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)
還可以使用下面的語句來載入echo子模塊
from Sound.Effects import echo
它在沒有包前綴的情況下也可以使用, 所以它可以如下方式調用:
echo.echofilter(input, output, delay=0.7, atten=4)
不主張從一個包或模塊中用import * 導入所有模塊,因為這樣的通常會導致可讀性很差。
from Package import specific_submole的用法並沒有錯,實際上這還是推薦的用法,除非導入的模塊需要使用其它包中的同名子模塊(the importing mole needs to use submoles with the same name from different packages).
綜上所述,一般情況應該使用import , 但有幾個例外
1)mole文檔告訴你要用from-import的
2)導入一個包組件。需要一個包裡面的某個子模塊,一般用from A.b import c比import A.b.c 更方便 且不會冒混淆的危險.

⑹ python怎麼導入庫包

Python庫的導入 import A 為最簡單的引入對應的包。

⑺ python如何導入第三方依賴包API

第一種基本安裝方法
1 下載第三方包,解壓
2 在命令提示符里輸入cmd,然後用cd進入到第三方包的路徑下
3 輸入python setup.py build
4 輸入python setup.py install
看到包內的文件在安裝即可……

第二種 用pip安裝

pip可以很方便的安裝、卸載和管理Python的包。
pip install xxxx
第三種 直接安裝anaconda3,大部分常用依賴包都已經有了。

⑻ python 導入數據包的幾種方法

1.直接導入整個數據包:improt 數據包
2.導入數據包中的某一個函數: from 數據包 improt 函數(當函數這一項為 * 時為導入整個數據包)
3. 導入之定義的數據包()

⑼ python中包的理解與運用

6.4. 包
包通常是使用用「圓點模塊名」的結構化模塊命名空間。例如,名為 A.B 的模塊表示了名為 A 的包中名為 B 的子模塊。正如同用模塊來保存不同的模塊架構可以避免全局變數之間的相互沖突,使用圓點模塊名保存像 NumPy 或 Python Imaging Library 之類的不同類庫架構可以避免模塊之間的命名沖突。
假設你現在想要設計一個模塊集(一個「包」)來統一處理聲音文件和聲音數據。存在幾種不同的聲音格式(通常由它們的擴展名來標識,例如:.wav, .aiff,.au ),於是,為了在不同類型的文件格式之間轉換,你需要維護一個不斷增長的包集合。可能你還想要對聲音數據做很多不同的操作(例如混音,添加回聲,應用平衡 功能,創建一個人造效果),所以你要加入一個無限流模塊來執行這些操作。你的包可能會是這個樣子(通過分級的文件體系來進行分組)
當導入這個包時,Python 通過 sys.path 搜索路徑查找包含這個包的子目錄。
為了讓 Python 將目錄當作內容包,目錄中必須包含 __init__.py 文件。這是為了避免一個含有爛俗名字的目錄無意中隱藏了稍後在模塊搜索路徑中出現的有效模塊,比如 string。最簡單的情況下,只需要一個空的 __init__.py 文件即可。當然它也可以執行包的初始化代碼,或者定義稍後介紹的 __all__ 變數。
用戶可以每次只導入包里的特定模塊,例如:
import sound.effects.echo
這樣就導入了 sound.effects.echo 子模塊。它必需通過完整的名稱來引用:
sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)
導入包時有一個可以選擇的方式:
from sound.effects import echo
這樣就載入了 echo 子模塊,並且使得它在沒有包前綴的情況下也可以使用,所以它可以如下方式調用:
echo.echofilter(input, output, delay=0.7, atten=4)
還有另一種變體用於直接導入函數或變數:
from sound.effects.echo import echofilter
這樣就又一次載入了 echo 子模塊,但這樣就可以直接調用它的 echofilter() 函數:
echofilter(input, output, delay=0.7, atten=4)
需要注意的是使用 from package import item 方式導入包時,這個子項(item)既可以是包中的一個子模塊(或一個子包),也可以是包中定義的其它命名,像函數、類或變數。import 語句首先核對是否包中有這個子項,如果沒有,它假定這是一個模塊,並嘗試載入它。如果沒有找到它,會引發一個 ImportError 異常。

⑽ python 如何導入utils這個包 ImportError: No mole named Utils

首先在終端查看是否有utils這個包,如果沒有安裝一個即可,具體操作如下:

1、在桌面找到並點擊打開python終端。

閱讀全文

與python導入包的方式相關的資料

熱點內容
壓縮因子定義 瀏覽:968
cd命令進不了c盤怎麼辦 瀏覽:214
葯業公司招程序員嗎 瀏覽:974
毛選pdf 瀏覽:659
linuxexecl函數 瀏覽:727
程序員異地戀結果 瀏覽:374
剖切的命令 瀏覽:229
干什麼可以賺錢開我的世界伺服器 瀏覽:290
php備案號 瀏覽:990
php視頻水印 瀏覽:167
怎麼追程序員的女生 瀏覽:487
空調外壓縮機電容 瀏覽:79
怎麼將安卓變成win 瀏覽:459
手機文件管理在哪兒新建文件夾 瀏覽:724
加密ts視頻怎麼合並 瀏覽:775
php如何寫app介面 瀏覽:804
宇宙的琴弦pdf 瀏覽:396
js項目提成計算器程序員 瀏覽:944
pdf光子 瀏覽:834
自拍軟體文件夾名稱大全 瀏覽:328