首頁 > 軟體

python如何匯入自己的模組

2022-02-11 10:03:21

如何匯入自己的模組

在實際的程式設計生活當中,我們除了會去import已經存在的包外,當然還會偶爾自定義一些模組,然後來匯入,其實一般而言,自定義的模組也就是一系列的指令碼,具體的,自己寫好了指令碼,然後匯入,匯入的情況分為以下情況:

1.自定義模組與所需要呼叫自定義模組的檔案在同一資料夾下

這時的呼叫就較為簡單了,直接匯入即可

比如說我想要在learnpandas中匯入m1.py,只需要在learnpandas指令碼開頭宣告import m1.py即可

2.自定義模組與所需要呼叫自定義模組的檔案不在同一資料夾下

其實這個的話,如果不怕麻煩的話可以用1中的方法,把需要匯入的檔案一個一個手動拖到當前資料夾中,,,當然這個方法時比較複雜的,尤其是要匯入的檔案較多的時候,,,,

這個時候有一個更聰明的方法

假設下圖是我們需要匯入的檔案目錄

在這種情況下,我們在folder中新建一個__init__.py檔案,此時的folder不再是一個普通的資料夾,而是一個包 package

在這個時候,想匯入哪一個檔案的話就只需在檔案開頭import folder.filename即可(記得要先將自定義庫路徑新增到Python的庫路徑中)

3.找到本地庫的路徑

然後將檔案拷進去即可

4.手動給python新增搜尋路徑

具體做法是:

在python安裝目錄的Libsite-packages資料夾中建立一個.pth檔案,內容為自己寫的庫絕對路徑

- - - - - - - - - - - - - - - - - 分割線- - - - - - - - - - - - - - - - -

將自定義庫的路徑新增到Python的庫路徑中去,有如下兩種方法:

1. 動態的新增庫路徑。在程式執行過程中修改sys.path的值,新增自己的庫路徑

import sys
sys.path.append(r'your_path') 

2. 在Python安裝目錄下的Libsite-packages資料夾中建立一個.pth檔案,內容為自己寫的庫路徑。

範例如下

E:\work\Python\http

E:\work\Python\logging

- - - - - - - - - - - - - - - - - 分割線- - - - - - - - - - - - - - - - -

在這裡說一句Python的包搜尋路徑:

Python會在以下路徑中搜尋它想要尋找的模組:

1. 程式所在的資料夾

2. 標準庫的安裝路徑

3. 作業系統環境變數PYTHONPATH所包含的路徑

匯入本地模組報錯的問題

很多時候,我們在寫一個python專案時,都會分模組來寫,在一個模組中匯入自己寫的另一個模組,最後在寫一個啟動程式,但執行啟動程式時往往會報錯說找不到你寫的模組,對此,這裡教大家一種通用且正規的python專案組織結構,基本都能解決這種找不到本地模組的問題。

以下圖為例說明

首先是建立一個專案資料夾:myproject ,這裡麵包括啟動檔案start.py、README.md檔案以及你的專案檔案myproject資料夾。這就是基本的專案結構。

這樣你就能在myproject資料夾裡面的py檔案裡使用相對路徑匯入其他資料夾下的模組了。

其實,Scrapy專案的目錄結構也大致是這樣的,大家可以看看建立scrapy專案時的目錄結構。

mytask.py

這裡就很方便使用 “.” 和 “..” 來表示當前路徑和上一級路徑了start.py

這裡要注意,啟動檔案start.py中不能使用".“和”.."等來匯入本地模組,因為主模組(啟動檔案)不能使用相對匯入。

最後,只要在命令列輸入python start.py就可以執行程式了。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com