一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - 圖文詳解Python如何導入自己編寫的py文件

圖文詳解Python如何導入自己編寫的py文件

2022-03-04 17:44正直的阿康 Python

有時候自己寫了一個py文件,想要把它導入到另一個py文件里面,所以下面這篇文章主要給大家介紹了關于Python如何導入自己編寫的py文件的相關資料,需要的朋友可以參考下

一. 想要實現的效果

新建文件夾將自編模塊集中管理

可在其它py文件內import 自編模塊,像import第三方庫一樣

 

二. 實現的方法

步驟1:將編號的模塊 *.py放入文件夾,在我計算機中是:F:\OneDrive\PythonPrj\_myFunction

圖文詳解Python如何導入自己編寫的py文件

步驟2:新建用戶/系統環境變量。

變量名:PYTHONPATH

變量值:文件夾路徑

圖文詳解Python如何導入自己編寫的py文件

然后就可以實現想要的效果了,以下三種import方式均可。

圖文詳解Python如何導入自己編寫的py文件

這樣做的原理是,Python解釋器會去以下三個位置找import的模塊:

  1. 當前文件所在目錄
  2. 環境變量PYTHONPATH指定的目錄
  3. Python 默認的安裝目錄

Python中sys.path變量記錄了解釋器可Import模塊的位置,如下圖所示:

圖文詳解Python如何導入自己編寫的py文件

所以,可通過操作sys.path變量告訴解釋器去哪里找模塊,代碼如下:

圖文詳解Python如何導入自己編寫的py文件

sys.path是個列表,這里用append將一個路徑加到了列表中,然后此路徑下的模塊a就能成功導入了。這種方法多寫了兩行代碼,不方便,所以只適合臨時用一下。

 

三. 進階用法

如果自編的模塊多了,或者想給自編模塊加上說明文檔的話,還是希望將每個自編模塊單獨存放在一個文件夾,以便于管理維護。像這樣:

圖文詳解Python如何導入自己編寫的py文件

然后在文件夾(如myPackage1)內存放自編模塊。

圖文詳解Python如何導入自己編寫的py文件

這時想導入模塊就要按照以下寫法:

圖文詳解Python如何導入自己編寫的py文件

這是一級子文件夾的寫法,更多級文件夾可以一直點(.)下去。當然,一般也就會用到一級子文件夾,二級幾乎都不會使用。

 

四. 使用_init_.py控制導入某文件夾時執行的操作

上述的導入方式一次只能導入一個文件夾里的一個模塊,如果想控制一次導入文件夾中的所有模塊,而不用一個個用點號去點,我們需要用到_init_.py文件。

此文件需要與模塊在同一目錄中,如下圖所示,Python中將擁有_init_.py文件的文件夾稱為包。

圖文詳解Python如何導入自己編寫的py文件

每次import myPackage1時,_init.py會自動執行一次,所以也稱為包初始化文件。利用這個特性,我們可以在此文件中寫一些代碼,用來控制導入文件夾myPackage1時的行為。像這樣寫這個初始化文件:

import sys# 將__init__.py文件所在目錄加入Python搜索目錄中,否則會提示找不到myModule1sys.path.append(__file__[:-12])import myModule1

然后,在其它py文件中導入myPackage1,因為_init_.py文件自動執行,myModule1文件會自動被導入。驗證一下:

圖文詳解Python如何導入自己編寫的py文件

當然,即使在包初始化文件里寫了import 某模塊,還是可以用 import myPackage1.myModule 這樣的方式來導入。包初始化文件不會對原本的導入方式有任何影響。

另一種寫法,可以一次導入包中某模塊中定義的函數和屬性,像這樣寫_init_.py文件:

import sys
# 將__init__.py文件所在目錄加入Python搜索目錄中,否則會提示找不到myModule1
sys.path.append(__file__[:-12])

import myModule1

然后,在其它py文件導入時這么寫:

圖文詳解Python如何導入自己編寫的py文件

可見,可以直接使用myModule1中的定義的函數了。

總結一下,導入模塊的寫法與_init_.py的寫法需要保持一致,即要么都import 包名,要么都from 包名 import *,這樣才可達到想要的效果。

我對Python理解還不夠深入,僅將摸索出來的一些規律分享出來。

 

總結

到此這篇關于Python如何導入自己編寫的py文件的文章就介紹到這了,更多相關Python導入編寫的py文件內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/weixin_42837669/article/details/121445910

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 校花被强迫np肉高h 校服下的白嫩小乳尖h1v1 | 18韩国美女vip视频7 | 我与白丝同桌的故事h文 | 国产成人久久精品推最新 | a级精品九九九大片免费看 a级动漫 | 精品国产品国语在线不卡丶 | 精品国产品香蕉在线观看 | 北岛玲在线播放 | 日本黄a三级三级三级 | 亚州成人| jiujiure精品 | 青青草原国产一区二区 | 午夜欧美精品 | 成人影音先锋 | 亚洲国产在 | 国内精品久久久久久久 | 亚洲日本va中文字幕 | 欧美精品综合一区二区三区 | 亚洲AV蜜桃永久无码精品红樱桃 | 456亚洲老头视频 | 好大好猛好深好爽视频 | bban女同系列022在线观看 | 亚洲AV国产国产久青草 | 国产高清视频一区二区 | 香蕉免费高清完整 | 秋霞黄色片| 皇上好大好硬好涨好深好爽 | 欧美日韩一区二区综合在线视频 | 日本美女动态图片 | 亚洲第6页 | 青草视频网站在线观看 | 国产自产自拍 | 99国产高清久久久久久网站 | 国产成人综合亚洲亚洲欧美 | 香蕉久久久久久狠狠色 | 国产一级片免费观看 | 国产黄频在线观看 | 午夜伦伦电影理论片大片 | 午夜国产精品 | 精品国产爱久久 | 日本在线精品视频 |