<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          多個(gè)Python項(xiàng)目怎么調(diào)用我自己的工具函數(shù)?

          共 1355字,需瀏覽 3分鐘

           ·

          2022-04-14 05:19


          在多年寫代碼的過程中,我總結(jié)了不少常用的工具函數(shù)。這些工具函數(shù)有的能夠?qū)崿F(xiàn)快速重試網(wǎng)絡(luò)請(qǐng)求,有的可以把任意格式的時(shí)間轉(zhuǎn)成標(biāo)準(zhǔn)格式,還有的可以自動(dòng)生成正則表達(dá)式。

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

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

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

          首先要排除的方法,就是手動(dòng)在代碼里面,通過sys.path添加文件夾。因?yàn)檫@個(gè)方法需要在每個(gè)項(xiàng)目的入口文件中增加兩行代碼,無法做到全自動(dòng)。

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

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

          當(dāng)然不是的。因?yàn)槲业墓ぞ甙锩娴拇a是在持續(xù)演進(jìn)的,我會(huì)經(jīng)常更新里面的代碼,放到site-packages里面以后,代碼修改起來很不方便。

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

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

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

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

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

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

          運(yùn)行效果如下圖所示:

          END

          往期推薦

          1、用了HTTPS,沒想到還是被監(jiān)控了!
          2、四大游戲編程網(wǎng)站,邊玩邊學(xué)Python!
          3、Python 的 import 是怎么工作的?
          4、YYDS!Python實(shí)現(xiàn)自動(dòng)駕駛
          5、20 行代碼編寫一個(gè)簡(jiǎn)單的端口掃描器

          點(diǎn)擊關(guān)注公眾號(hào),閱讀更多精彩內(nèi)容
          瀏覽 17
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  激情黄色五月天 | 精品6区| 不卡的a12在线观看 | 欧美色图亚洲另类 | av中文网 |