Python | lib (import) 路徑設定

當熟悉完程式碼後,真正開始製作專題時,一定會發生有關Python lib(import路徑)的問題,以下我拿openCV裡的facedetect.py作為範例,目標是將 facedetect.py 從C槽移至D槽並將其import的檔案放到另一個資料夾中以利於做出區隔。

P.s 斜體字並不是必要步驟,多半是為了方便講解或是想說一個思考流程,若覺得太囉嗦就跳過吧。

1.一開始我們來到了存放 facedetect.py的資料夾

1

2.再來我在D槽新增了一個叫做 catchface的資料夾

2

現在裡面還是空的

2-2

3.然後將  facedetect.py 丟進剛剛建的資料夾裡

3

4.雖然知道一定會錯誤,我們還是執行一次facedetect.py,來看看會出現什麼錯誤訊息

4-1

4-2

很清楚的,上面說我們沒有 video 的模組

5.

看一下facedetect.py的程式碼會發現,裡面有import兩個檔案,分別是video和common檔案。

再來我們回到將原本C槽下的資料夾,在裡面找到了video和common檔案,我們將這兩個複製到我們的D槽資料夾下。

5

這樣就可以執行了。

(但 facedetect.py裡有一些外援的XML檔案,這邊的相對路徑也須調整才會真正達到捕捉臉部的功能,下面會有相關解說)

6.

再來,我們為了未來管理方便,要將import的檔案放到另個資料夾,所以我在這邊又新增個lib的資料夾

6

將video和common檔案剪貼過去

6-2

7.

當然,如果又這樣直接去執行 facedetect.py 就會出現 4.的情況了

所以我們要在程式碼裡加上有關路徑的位置。

import sys
sys.path.append(“./lib/”)

7

這樣就完成了~((煙火

8.

但是就像 5.最後說的,在facedetect.py裡其實還有一些相對路徑必須做出更改。

所以我們先找到要做更改的兩行。

8

然後我們再次回到C槽,順這這兩行的路徑去找,果然發現了一個data資料夾

8-2

8-3

將data資料夾複製到我們的資料夾下。

再來只要改路徑即可

原來:

cascade_fn = args.get(‘–cascade’, “../../data/haarcascades/haarcascade_frontalface_alt.xml”)
nested_fn = args.get(‘–nested-cascade’, “../../data/haarcascades/haarcascade_eye.xml”)

更改後

cascade_fn = args.get(‘–cascade’, “./data/haarcascades/haarcascade_frontalface_alt.xml”)
nested_fn = args.get(‘–nested-cascade’, “./data/haarcascades/haarcascade_eye.xml”)

8-4

這樣就真正的完成了~

Add a Comment

發佈留言必須填寫的電子郵件地址不會公開。