日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
多個Python項目怎么調(diào)用我自己的工具函數(shù)?

我把這些工具函數(shù)分別放到多個.py文件中。然后把這些.py文件放在一個叫做my_awesome_util的文件夾中。

由于我沒有把這些代碼上傳到Pypi或者Github,因此我每次在新的項目中要使用時,都要把my_awesome_util文件夾復(fù)制到新的項目中,非常麻煩,而且會形成大量的重復(fù)代碼。

有沒有什么辦法,能讓新開的項目直接就能導(dǎo)入這些工具函數(shù)呢?就像導(dǎo)入官方模塊import time一樣,如果我要使用時間相關(guān)的工具函數(shù),我只需要import time_util就可以了。

首先要排除的方法,就是手動在代碼里面,通過sys.path添加文件夾。因為這個方法需要在每個項目的入口文件中增加兩行代碼,無法做到全自動。

今天的方法,是在Python的site-packages文件夾中做文章。相信很多同學(xué)都知道,任何放到site-packages文件夾里面的.py文件或者文件夾,都可以在Python中直接導(dǎo)入:

看到這里,肯定有同學(xué)要問,那是不是把my_awesome_util文件夾整個復(fù)制到site-packages文件夾中呢?

當(dāng)然不是的。因為我的工具包里面的代碼是在持續(xù)演進的,我會經(jīng)常更新里面的代碼,放到site-packages里面以后,代碼修改起來很不方便。

我們要用到的,是Python的一個特性,叫做.pth文件。在site-packages文件夾中,任意創(chuàng)建一個.pth文件。文件名可以隨便取,只要不跟已有的模塊沖突就可以了。例如叫做xxxx.pth。這個文件里面只有一行,就是my_awesome_util文件夾的絕對路徑。例如:

現(xiàn)在,我在任何一個文件夾中啟動Python,直接就可以導(dǎo)入my_awesome_util文件夾中的任何.py文件:

.pth文件可以有很多行,每行一個文件夾的絕對路徑,就可以讓Python同時導(dǎo)入這些文件夾里面的所有.py文件。

有時候,我們的電腦上有多個虛擬環(huán)境。A環(huán)境有pandas,沒有pymongo;B環(huán)境有pymongo,但沒有pandas。現(xiàn)在我在B環(huán)境里面要寫一段代碼,既需要pandas,又需要pymongo怎么辦呢?如果不想重新安裝,我可以把A環(huán)境的site-packages文件夾的絕對路徑,寫入到一個.pth文件中,然后把這個文件存放到B環(huán)境的site-packages文件夾中。這樣,我就可以在B環(huán)境里面直接使用A環(huán)境中的所有第三方庫了。

有同學(xué)會問,怎么知道site-packages文件夾在哪里呢?其實只需要執(zhí)行下面兩行代碼就能查詢到:

>>> import sysconfig
>>> print(sysconfig.get_path('purelib'))

運行效果如下圖所示:


網(wǎng)頁標(biāo)題:多個Python項目怎么調(diào)用我自己的工具函數(shù)?
轉(zhuǎn)載源于:http://m.5511xx.com/article/cogipgi.html