python的模塊module導入

最近有一個項目要使用python連接mysql數(shù)據(jù)庫,最方便的就是使用python的第三方依賴包pymysql了。但集群環(huán)境的調度機上只有python的最基本組件而且不讓裝這類第三方依賴包,就只能想辦法將pymysql的依賴包直接在項目中作為模塊導入了。

作為一個只看了幾小時python語法的菜鳥,很多概念都不清楚,理論可以說知道一些但都沒有實踐過,語句基本都只能依樣畫葫蘆的修改然后看結果,話不多說直接開始各種嘗試!

大前提:python環(huán)境已裝好

首先第一步,要想知道模塊導入的結果,第一個碰到的問題就是在windows下首先得要能執(zhí)行一個python文件看看輸出結果吧。

一、windows下py文件的執(zhí)行

新建一個test.py文件,位置在C:/test/test2(后續(xù)都稱目錄

窗口輸入cmd打開命令行,cd命令進入目錄下(一定要進入當前目錄),輸入命令python test.py就可以執(zhí)行py文件了。

(這個步驟很簡單,之所以要單獨拎出來是一開始的時候連python命令在哪使用,要進入當前目錄都不清楚,這里大概理了下思路,需要明白一些基礎)

二、python模塊、包概念

Python 模塊(Module),就是一個 Python 文件,以 .py 結尾,包含了 Python 對象定義和Python語句。模塊里面可以定義函數(shù),類和變量,模塊里也能包含可執(zhí)行的代碼。

包,是一個分層次的目錄結構,定義了一個由模塊及子包,和子包下的子包等組成的 Python 的應用環(huán)境。?其實就是一個文件夾,不過文件夾下必須要有__init__.py模塊,這個模塊用來標識這個是一個包。

任何一個python文件,都可以以兩種方式執(zhí)行,一個是作為模塊被導入,一個是做為python腳本文件被執(zhí)行(也就是用python XX.py)

三、模塊的導入示例

工具:pycharm

1.準備文件
在目錄下有文件結構如下:
|—test
????|—test1
????????|—package_runoob
? ? ? ? ? ? |—__init__.py
? ? ? ? ? ? |—runoob1.py
? ? ? ? ? ? |—runoob2.py
? ? ? ? |—test.py
? ? ? ? |—__init__.py
? ? |—test2
? ? ? ? |—import_otherModule.py

*注:沒有截圖的__init__.py文件說明該文件內容為空

runoob1.py
runoob2.py
packge_runoob.__init__.py

2.導入當前目錄下的模塊
以test.py作為示例。

test.py
test運行結果

分析:
package_runoob與調用腳本test.py處于同級目錄,可以直接導入模塊。
*注:模塊導入有兩種方法:
(1)from ,可以從模塊中導入某個類或某個方法,在后面就可以直接使用該類或方法,這種方法導入需要注意后續(xù)自定義的類和方法盡量不要同名避免混淆。
(2)import module_name as a,直接導入某個模塊,調用時需要a.類名或者a.方法名。

3.導入其他目錄下的模塊

test1.__init__py
import_otherModule.py
import_otherModule 運行結果

分析:
首先通過相對路徑,將當前文件的上一級目錄添加到python解釋器搜尋文件目錄。接下來就可以將該目錄的包進行導入。
import test1:會導入test1模塊,首先執(zhí)行test1的__init__.py,而這個py文件中又導入了package_runoob,因此又會先執(zhí)行package_runoob.__init__.py,所以結果顯示“package_runoob init”。
test1.test1print()方法:之所以可以調用這個方法是因為__init__.py已經(jīng)執(zhí)行過了,這個方法已經(jīng)在內存空間,結果顯示出“this is print in test1 init”。
runoob2.runoob2_test():模塊已經(jīng)導入,可以使用模塊.方法使用模塊內的方法。

總結:
導入其他目錄的方法可以使用相對導入,通過sys.path.append("相對路徑")加入路徑,然后再進行導入。
".."表示上一層目錄,"../.."表示上兩層,"../lib"表示上層目錄下的lib目錄。類推。

pycharm的python shell界面

可以在這個界面測試語句,每次enter都會返回當前語句的執(zhí)行結果。terminal界面和cmd出來的windows界面功能一樣,可以在該界面直接運行 python XXX.py運行某個python文件。?

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容