精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

小問題大隱患:如何正確設置 Python 項目的入口文件?

開發 后端
如果僅僅從技術上來說,你非要導入 bin 文件夾的父文件夾下面的其他模塊,也并不困難,我在一日一技:導入父文件夾中的模塊并讀取當前文件夾內的資源一文中講到了具體的做法。

 [[382118]]

今天在公眾號粉絲群里面,有一位同學提到了 Python 找不到模塊的問題:

問題涉及到的代碼結構和代碼截圖如下:

這個問題的解決方法非常簡單,就是把start.py文件從bin文件夾移出來就好了。

但如果對這個問題進一步分析,可以看到更多問題。

在我以前的文章:為什么Python代碼能運行但是PyCharm給我畫紅線?中,我講到了工作區(Workdir)對代碼的影響。PyCharm、VSCode 識別的工作區,可能并不等于你直接在終端窗口運行.py文件時候的工作區。

今天這個問題本質上也是工作區導致的問題。這個同學的項目根目錄是MY_API,所以他使用的編輯器VSCode 就會默認把MY_API當做工作區。所以,當他在start.py文件中寫上from lib.interface import server時,VScode 并不會給他標記紅色波浪線。因為從 VSCode 的視角看,lib文件夾確實就是在工作區下面的。

但是,當他在 VSCode 里面運行這個start.py文件時,Python 是從bin文件夾下面運行的。此時,Python 會把bin文件夾當做工作區。在工作區里面就只有這一個start.py文件,所以當然找不到lib文件夾。

如果僅僅從技術上來說,你非要導入 bin 文件夾的父文件夾下面的其他模塊,也并不困難,我在一日一技:導入父文件夾中的模塊并讀取當前文件夾內的資源一文中講到了具體的做法。

但問題在于,你不應該這樣做。你不應該把項目的入口文件,放到項目內部很深的文件夾中。

所謂入口文件,就是要首先經過它,才能到達其他的文件。當你拿到一個 Python 項目,你只需要首先從入口文件開始閱讀代碼,根據入口文件調用的模塊,一路看下去,你就能讀到它的所有實現邏輯。

但如果大家經常逛 Github,就會發現,有些人可能是被其他垃圾語言污染了思想,他的 Python 項目,根目錄有五六個文件夾和七八個.py文件。你拿到這個項目的時候,你甚至不知道,當你想運行這個代碼的時候,python3 xxx.py應該運行哪個文件。你多方打聽,或者看了半天文檔,才知道,哦,原來入口文件在com/xx/yy/zz/script/run.py。

當你打開這個run.py文件,你發現它的頂部,文件導入的代碼寫的是from ../../../../aaa import bbb。

簡直是神經病寫法。我知道有些垃圾語言流行這樣寫。但現在你用的是 Python,學聰明一點,別那樣寫。

對于一個 Python 項目來說,入口文件應該始終在最外層。例如:

當你要啟動這個項目的時候,直接在最外層python3 main.py,就能把它啟動起來。在main.py里面,你可以導入其他模塊,然后調用其他模塊里面的類或者函數。

這樣做的好處是什么?這樣做,你是在項目的根目錄啟動的這個項目,所以你的工作區就是項目的根目錄。那么你在任何一個.py文件里面都可以很容易地基于工作區導入任意其他文件。例如,你現在在models/mongo-util/mongob_helper.py文件中,你想導入utils/abc.py中的time_format()函數,那么,你只需要這樣寫就可以了。

  1. from utils.abc import time_format 

你根本不可能出現需要導入父文件夾中的某個模塊的情況。

只有工具腳本,才需要單獨使用一個文件夾來存放,然后調用父文件夾中的其他文件。例如,我現在有一個工具腳本,它每天晚上0點會讀寫 MongoDB,清理無效數據,那么此時,我可以在根目錄單獨創建一個script或tools或者bin文件夾,然后把工具腳本放進去,例如:

在這個工具腳本里面,你可能會調用models/mongo-util/mongob_helper.py文件中的某個函數。這種情況下,你調用父文件夾中的內容是可以接受的。但這畢竟只是工具腳本。

可能還有同學要問,那如果我的項目是一個 Python 的包,它本身沒有入口文件怎么辦呢?這個時候,你可以把這個包的__init__.py當做它的入口文件。大家可以參考我在 GitHub - kingname/GeneralNewsExtractor: 新聞網頁正文通用抽取器 Beta 版.[1]的代碼組織結構。在項目根目錄留下一個example.py文件,用來演示如何調用這個包。而這個包本身的代碼,是在一個叫做gne的文件夾中的。這個gne文件夾是一個包,它的入口文件在__init__.py中。

各位,當你寫代碼的時候,你先想一想,如果別人拿到了你的代碼,想要梳理一下這個項目的邏輯,在不詢問你的情況下,怎么讓他知道應該從哪個文件開始讀?應該按什么順序讀?他能不能輕易地看到數據在你的代碼中是怎么運轉的?

參考資料

[1]GitHub - kingname/GeneralNewsExtractor: 新聞網頁正文通用抽取器 Beta 版.: https://github.com/kingname/GeneralNewsExtractor

本文轉載自微信公眾號「未聞Code」,可以通過以下二維碼關注。轉載本文請聯系未聞Code公眾號。

 

責任編輯:武曉燕 來源: 未聞Code
相關推薦

2010-07-05 09:56:37

2022-08-02 09:56:47

入口文件代碼

2011-07-04 09:39:31

項目管理

2009-12-07 09:45:23

PHP上傳大文件設置

2018-07-26 11:35:20

WindowsWindows 10修復

2021-09-13 12:45:08

Ubuntu 20.0PythonLinux

2021-09-14 21:29:01

項目環境變量

2021-09-13 09:52:11

Python項目連接器

2020-08-23 12:00:54

VDI虛擬桌面虛擬化

2010-02-24 09:47:05

Python 源文件

2020-08-25 07:16:20

Python資源文件文件

2024-11-19 15:22:37

2023-10-21 20:50:00

Python項目PyCharm

2020-04-29 14:37:24

JavaScript前端技術

2018-04-11 15:42:04

開源項目姿勢

2020-08-07 11:46:47

JavaScript開發代碼

2010-02-22 15:26:57

Python對象

2015-07-07 10:11:39

GitHub項目流行度

2020-03-13 07:32:18

物聯網項目物聯網IOT

2009-02-04 15:55:31

敏捷開發敏捷項目項目經理
點贊
收藏

51CTO技術棧公眾號

国产精品欧美三级在线观看| 大香伊人久久| 韩国精品免费视频| 国内精品久久久久久影视8| 中文字幕无码人妻少妇免费| 亚洲天堂1区| 亚洲老司机在线| 快播亚洲色图| 国产女人18毛片水18精| 亚洲美洲欧洲综合国产一区| 色噜噜狠狠狠综合曰曰曰88av| 999热精品视频| 欧美片第1页| 一区二区三区四区蜜桃| 茄子视频成人在线观看| 午夜精品小视频| 美女性感视频久久| 2019中文字幕在线观看| 国产精品三区在线观看| 天堂在线精品| 日韩欧美成人激情| 国产理论在线播放| 国产中文在线播放| 亚洲欧美成aⅴ人在线观看| 欧美一区国产一区| 欧美一级特黄aaaaaa| 韩国欧美一区二区| 成人国产在线观看| 亚洲国产精品久久久久秋霞不卡| 久久久久久久片| 成av人片在线观看www| 综合精品久久久| 日韩视频专区| 刘玥91精选国产在线观看| 久久se这里有精品| 国产成人一区二区三区小说| 91香蕉在线视频| 午夜视频精品| 久久精品青青大伊人av| 一级在线观看视频| 精品国产精品| 亚洲色图狂野欧美| 中文字幕高清视频| 亚洲成人五区| 日韩欧美国产一区二区三区| 91亚洲精品久久久蜜桃借种| 日本免费成人| 欧美猛男男办公室激情| 亚洲另类第一页| 91天天综合| 欧美日韩一区二区欧美激情| 男人女人黄一级| 国产极品一区| 在线不卡a资源高清| www.国产视频.com| 国产精品一区二区免费福利视频| 欧美在线999| www.99在线| 欧美视频免费看| 欧美精品一二三区| 一级黄色在线播放| 日韩毛片网站| 欧美一区二区成人| 91人妻一区二区| 露出调教综合另类| 亚洲精品丝袜日韩| 干b视频在线观看| 精品国产一区二区三区久久久樱花| 在线亚洲欧美视频| 老熟妻内射精品一区| 伊人精品成人久久综合软件| 午夜精品一区二区三区视频免费看| 久久久久久久久久影院| 天堂va蜜桃一区二区三区| 国产精品视频精品| av高清一区二区| 99久久精品一区| 欧美亚洲免费高清在线观看 | 丝袜老师在线| 色香色香欲天天天影视综合网| 亚洲成av人片在线观看香蕉| 日本一道在线观看| 国产探花视频在线观看| 岛国av一区二区在线在线观看| 久久国产色av免费观看| 视频欧美精品| 亚洲第一福利视频| 久久丫精品忘忧草西安产品| 欧美va久久久噜噜噜久久| 欧美福利视频在线| 久久亚洲精品石原莉奈 | 国产精品第七十二页| 亚洲天堂网视频| 成人高清在线视频| 亚洲巨乳在线观看| 国产无遮挡裸体视频在线观看| 色婷婷综合久久久久中文| 亚洲网中文字幕| 天天躁日日躁狠狠躁欧美| 色婷婷**av毛片一区| 日韩欧美大片在线观看| 久久精品理论片| 精品福利影视| 久久77777| 色视频欧美一区二区三区| 成人高清在线观看视频| 日韩有码中文字幕在线| 欧美成人免费大片| 波多野结衣在线电影| 成人黄色av电影| 午夜啪啪免费视频| 亚洲承认视频| 亚洲的天堂在线中文字幕| 国产性生活大片| 日韩极品在线观看| 国产在线播放一区二区| 麻豆传媒视频在线观看免费| 色综合久久九月婷婷色综合| 久久久久无码国产精品一区李宗瑞| 日韩在线观看| 欧美亚洲国产另类| 亚洲av无码乱码国产精品| 国产精品久久久久久久久搜平片 | 一区二区视频在线观看| 深夜成人在线| 精品播放一区二区| 三级在线观看免费大全| 首页亚洲欧美制服丝腿| 久久99九九| 欧美家庭影院| 日韩欧美在线网站| jizzjizz日本少妇| 鲁大师影院一区二区三区| 欧美色xxxx| 91免费版黄色| a级网站在线播放| 欧美日韩一区三区四区| 精品人伦一区二区| 久久都是精品| 久久久久一区二区| 国产网站在线| 精品亚洲男同gayvideo网站| 国产精品一区二区6| 成人黄色在线视频| av女优在线播放| 国产 日韩 欧美 综合 一区| 欧美激情亚洲另类| 日韩有码第一页| 亚洲国产精品久久人人爱| 亚洲黄色小说在线观看| 伊人成年综合电影网| 成人蜜桃视频| а√在线中文网新版地址在线| 精品久久一区二区| 在线观看 中文字幕| 99国产一区二区三精品乱码| 狠狠干 狠狠操| 久久99久久人婷婷精品综合| 日韩av手机在线看| 国产黄在线看| 在线电影欧美成精品| 欧美爱爱小视频| 成人自拍视频在线| 精品少妇人妻av免费久久洗澡| 美国成人xxx| 日韩女优人人人人射在线视频| 国产小视频在线播放| 欧美日韩在线三级| 午夜精品一区二区三区视频| 国产精品自拍区| 中文字幕亚洲区| wwwwwxxxx日本| 中文字幕一区二区三区欧美日韩| 91情侣在线视频| 国产粉嫩在线观看| 在线观看日韩欧美| 精品国自产在线观看| 午夜久久电影网| 人妻少妇无码精品视频区| 久久国产剧场电影| 日韩人妻无码精品久久久不卡| 色婷婷av一区二区三区丝袜美腿| 国产精品久久久久av| 国产成人在线视频免费观看| 亚洲国产日韩欧美在线99| 91porny九色| 亚洲精品国产高清久久伦理二区| 国产精品边吃奶边做爽| 美女国产一区二区三区| 国产欧美精品aaaaaa片| 久久99国内| 91在线免费看片| 怡红院成人在线| 欧美疯狂xxxx大交乱88av| 免费在线观看一级毛片| 日韩欧美www| 在线观看国产一区二区三区| 亚洲一区二区在线免费看| 久久丫精品忘忧草西安产品| 国产91精品久久久久久久网曝门| www.xxx亚洲| 一本一道久久a久久精品蜜桃 | 欧美自拍大量在线观看| 美女隐私在线观看| 亚洲精品永久免费精品| 99久久婷婷国产一区二区三区| 欧美午夜精品在线| 久草视频手机在线观看| 国产精品久久毛片av大全日韩| 亚洲蜜桃精久久久久久久久久久久| 九色综合狠狠综合久久| 欧美污视频网站| 亚洲国产二区| 日本丰满大乳奶| 久久一区二区三区电影| 美国av一区二区三区| 91夜夜蜜桃臀一区二区三区| 国产精品一区二区性色av| 深夜成人在线| 91精品国产91久久久久久久久 | 亚洲丶国产丶欧美一区二区三区| 国产破处视频在线观看| 2020国产精品自拍| a级片在线观看视频| 国产呦精品一区二区三区网站 | 成人网男人的天堂| 一二三级黄色片| 六月婷婷色综合| 韩国中文字幕av| 日韩福利视频导航| 一本久道中文无码字幕av| 亚洲欧美网站| 国产极品粉嫩福利姬萌白酱 | 美女网站免费观看视频| 国产午夜久久| 国产极品在线视频| av成人黄色| 国产99久久九九精品无码| 99成人在线| 狠狠干 狠狠操| 99在线精品免费视频九九视| 97在线国产视频| 精品福利电影| 人妻夜夜添夜夜无码av| 亚洲人成久久| 久久久999视频| 午夜影院日韩| 成年人视频在线免费| 久久综合伊人| 污污视频网站免费观看| 日本aⅴ免费视频一区二区三区| 国产福利一区视频| 麻豆精品在线播放| 色偷偷中文字幕| 成人一区二区三区视频| 中国一级特黄录像播放| 91蜜桃网址入口| 亚洲色成人网站www永久四虎| 国产日韩在线不卡| 久草福利资源在线| 亚洲乱码国产乱码精品精98午夜| 国产十六处破外女视频| 天天操天天色综合| 国产男人搡女人免费视频| 欧美日本高清视频在线观看| 精品国产一级片| 亚洲精品成人网| av女优在线| 美日韩在线视频| 国产免费拔擦拔擦8x高清在线人| 国产aⅴ夜夜欢一区二区三区 | 国产91视觉| 亚洲小说图片视频| 一区二区在线观| 伊人成人在线| 黄大色黄女片18第一次| 国产一区二区三区免费| av鲁丝一区鲁丝二区鲁丝三区| 国产日韩欧美综合在线| 国产大片免费看| 狠狠躁天天躁日日躁欧美| 亚洲视频久久久| 欧美成人精品1314www| 国产中文字幕在线观看| 久久中文精品视频| 亚洲国产福利| 91网在线免费观看| 亚洲日产av中文字幕| 国产四区在线观看| 鲁大师成人一区二区三区| 成人av毛片在线观看| 91蜜桃网址入口| 国产1区2区3区4区| 91成人免费在线| 成人免费视频国产免费麻豆| 中文字幕日韩欧美在线| av影视在线看| 国产在线视频一区| 日韩在线麻豆| 97超碰国产精品| 免费精品视频在线| 精品黑人一区二区三区观看时间| 中文字幕一区二区三中文字幕 | 欧美精品乱人伦久久久久久| 五月婷婷六月激情| 久久最新资源网| 欧美精品总汇| 久久精品中文字幕一区二区三区 | 亚洲精品自拍动漫在线| 麻豆精品久久久久久久99蜜桃| 日韩一区二区三区免费看| а天堂8中文最新版在线官网| 久久久久久久国产| 国产日本亚洲| 亚洲一区二区三区精品动漫| 免费精品视频| 高清中文字幕mv的电影| 国产精品灌醉下药二区| 日日夜夜操视频| 亚洲精品在线不卡| 678在线观看视频| 91精品黄色| 一区二区三区在线| 手机av在线免费| 国产精品久久久久影院色老大| 日韩免费av网站| 亚洲美女动态图120秒| 678在线观看视频| 国产日韩欧美精品| 国产精品第十页| 国产sm在线观看| 有坂深雪av一区二区精品| 国产精品久久久久久无人区| 中文字幕日韩综合av| aaaa欧美| 亚洲图片欧洲图片日韩av| 免费久久99精品国产| 欧美性受xxxx黑人| 欧美日韩精品一区二区| 一级毛片视频在线| 国产综合在线观看视频| 午夜欧美在线| 在线观看中文av| 亚洲免费观看视频| 性猛交富婆╳xxx乱大交天津 | 亚洲免费av电影| 午夜裸体女人视频网站在线观看| 精品欧美国产| 六月婷婷一区| 成人免费无遮挡无码黄漫视频| 色综合久久综合网97色综合| 极品美乳网红视频免费在线观看| 日本乱人伦a精品| 精品免费视频| 五月天视频在线观看| 亚洲免费观看视频| 免费国产精品视频| 欧美专区在线观看| 日韩欧美精品| 深夜福利网站在线观看| 亚洲曰韩产成在线| 天堂在线视频网站| 国产999精品久久久| 国产精品久久久久蜜臀| 女人扒开双腿让男人捅 | 欧美成人亚洲成人日韩成人| 亚洲国产精品免费视频| 97视频久久久| 久久久www免费人成精品| 中文字幕日韩经典| 久久69精品久久久久久久电影好 | 国产在线精品一区在线观看麻豆| a级黄色片免费看| 日韩成人av在线| 经典三级一区二区| 91精品国产毛片武则天| 99久久精品免费精品国产| 久久久国产免费| 久久福利网址导航| 亚洲尤物av| 亚洲黄色片免费看| 疯狂欧美牲乱大交777| eeuss影院在线播放| 成人免费观看网站| 日韩成人av影视| 国产一级免费av| 在线午夜精品自拍| 美女视频免费精品| 九色porny自拍| 亚洲成人免费在线观看| 自拍视频在线免费观看| 国产69精品久久久久9999apgf| 日本欧美一区二区三区乱码| 欧美日韩一级大片| 一区二区三区国产视频| 哺乳一区二区三区中文视频| 99热这里只有精品在线播放| 亚洲成人免费在线观看| 免费在线观看黄色网| 欧美日韩天天操|