1. Python項(xiàng)目標(biāo)準(zhǔn)結(jié)構(gòu),我推薦這個(gè)!

        共 1765字,需瀏覽 4分鐘

         ·

        2022-03-13 10:15

        你好,我是zhenguo

        這是我的第503篇原創(chuàng)。

        這篇文章講什么?

        做數(shù)據(jù)分析習(xí)慣使用Jupyter notebook,編寫幾行代碼,很方便得到結(jié)果。

        但在真正項(xiàng)目中,一般使用PyCharm或VSCode開(kāi)發(fā)。那有的小伙伴就問(wèn)了,項(xiàng)目文件目錄有沒(méi)有一個(gè)標(biāo)準(zhǔn)的結(jié)構(gòu)?

        應(yīng)該沒(méi)有唯一的統(tǒng)一標(biāo)準(zhǔn),但Python社區(qū)大佬Kenneth Reitz在2013年提出一個(gè)Python項(xiàng)目目錄結(jié)構(gòu),推薦你日后項(xiàng)目中參考。

        Python項(xiàng)目推薦結(jié)構(gòu)

        Kenneth推薦目錄結(jié)構(gòu),如下所示:

        samplemod-master
        ├──?LICENSE
        ├──?MANIFEST.in
        ├──?Makefile
        ├──?README.rst
        ├──?docs
        │???├──?Makefile
        │???├──?conf.py
        │???├──?index.rst
        │???└──?make.bat
        ├──?requirements.txt
        ├──?sample
        │???├──?__init__.py
        │???├──?core.py
        │???└──?helpers.py
        ├──?setup.py
        └──?tests
        ????├──?__init__.py
        ????├──?context.py
        ????├──?test_advanced.py
        ????└──?test_basic.py

        一共3個(gè)文件夾,17個(gè)文件。

        先來(lái)看看第一個(gè)文件夾docs,它是項(xiàng)目相關(guān)文檔,包括依賴包安裝的Makefilemake.bat,項(xiàng)目配置conf.py,項(xiàng)目介紹文檔index.rst,是比README.rst更細(xì)化的一個(gè)文檔,README.rst更像一個(gè)項(xiàng)目總覽。

        第二個(gè)文件夾sample,在Python中一般叫做包(package),它是項(xiàng)目核心代碼,一般會(huì)有多個(gè)這種包,__init__.py是Python包包括的文件。core.pyhelpers.pysample包里兩個(gè)核心模塊。

        第三個(gè)包tests,是對(duì)應(yīng)于sample包的單元測(cè)試包,里面的模塊名稱一般以test開(kāi)頭,測(cè)試sample里的每個(gè)模塊。

        setup.py是做什么的?

        有了上面三個(gè)最主要的包外,文件最重要的有setup.py,這個(gè)文件是做什么的?

        簡(jiǎn)單來(lái)說(shuō),setup.py是和打包相關(guān)的配置模塊,一般結(jié)合setuptools。

        有了setup.py,我們就可以安裝包到本地全局環(huán)境,或者上傳到PyPi,這樣全世界開(kāi)發(fā)者都有機(jī)會(huì)搜索到你的包,并使用pip安裝上你的包。

        里面代碼相對(duì)比較標(biāo)準(zhǔn)和固定,比如在這個(gè)項(xiàng)目里代碼如下:

        from?setuptools?import?setup,?find_packages


        with?open('README.rst')?as?f:
        ????readme?=?f.read()

        with?open('LICENSE')?as?f:
        ????license?=?f.read()

        setup(
        ????name='sample',
        ????version='0.1.0',
        ????description='Sample?package?for?Python-Guide.org',
        ????long_description=readme,
        ????author='Kenneth?Reitz',
        ????author_email='[email protected]',
        ????url='https://github.com/kennethreitz/samplemod',
        ????license=license,
        ????packages=find_packages(exclude=('tests',?'docs'))
        )

        看到這里面用到README.rstLICENSE文件,并且指定打哪些包分發(fā)出去。


        這篇文章梳理了Python項(xiàng)目的標(biāo)準(zhǔn)結(jié)構(gòu),希望對(duì)你有用,點(diǎn)贊或收藏吧,enjoy!

        我的課程宣傳

        我正在錄制一個(gè)從零學(xué)Python的體系課,目前已有120節(jié)視頻課,正在進(jìn)行的有爬蟲、數(shù)據(jù)分析、算法等,整個(gè)錄制完成應(yīng)該有300節(jié)視頻課。

        預(yù)售階段我決定只299元。相當(dāng)于花一門課的錢,學(xué)到了很多門課。

        這個(gè)課有專屬班級(jí)群,我會(huì)在里面答疑每一個(gè)提問(wèn)。

        3470a318ae86cf972eac0ead41b0341a.webp

        長(zhǎng)按圖中圓圈二維碼

        zhenguo出品,品質(zhì)保證!

        瀏覽 135
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 操出白浆av| 婷婷五月亚洲综合 | 欧美极品jizzhd欧美 | 黄 片 免费 在 线 观 看 s | 欧美三级国产一级 |