日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python管理包路徑之pycharm自動解決包路徑注冊_python

作者:???????zxhtom ? 更新時間: 2022-11-15 編程語言

簡介

  • Python 是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。你可以將它理解成腳本語言,大多情況我也是將它作為寫腳本工具的一個方式。
  • python 目前存在 python2 和 python3 兩個大版本,至于他們的區別我們沒必要深究,很多新的特性都是在 python3 中引入的,另外 python2 已經停止維護了,所以該選擇誰你應該清楚了。

模塊化

  • 我們在學習一門語言的時候可以將所有的 demo 放在同一個文件夾,這樣方便相互查找,但是在企業級的項目中往往會出現很多功能,正常會根據功能進行分包管理,在大的項目中更有可能分模塊管理,不管是分包還是分模塊都需要注意一個問題就是如何引用的問題, python 會默認在當前腳本所在文件夾下尋找所需模塊,如果當前沒有會去其他系統管理模塊的地方進行尋找,很明顯我們自己的分包分模塊的自然不會被找到,這就需要我們進行相應的處理。
  • 不僅僅是 python 語言中, 模塊這個概念是凌駕于語言之上,大體上應該分為三類
  • 內置模塊 , 在 python中我們可以通過?help('modules')?來查看所有的內置模塊

  • - ? 第三方模塊 , 就是別人封裝的工具 ,python中可以通過 `pip install` , Java中通過 Maven管理安裝。
  • - ? 剩下的就是我們自定義模塊了,不是所有牛奶都是特侖蘇,也不是所有人封裝的都叫做第三方模塊,我們個人的封裝局限很大僅使用我們自己的項目。

模塊導入

  • 模塊導入也很方便,除了第三方模塊我們需要 通過包管理工具安裝一下才能導入,其他模塊我們都可以直接導入。

    • import module_a?: 導入module_a 模塊
    • from module_b import module_b_child?: 從 module_b 導入他的方法或者導入他的子模塊
    • import module_c as tom_util?: 重命名導入的模塊
    • from module_tom import *?: 導入module_tom下所有模塊

  • 現在項目中存在兩個目錄分別為?core?、?user?, core 目錄中存在的?token_util.py?是我們獲取 web 開發中登錄 token的, 而 user 目錄下則是管理用戶的腳本,這個時候 user_util.py 依賴與 token_util.py ,那么我們就需要?import token_util?。

  • 果不其然出現了經典的?No module named 'token_util'?, 上面我已經說了他只會去尋找默認當前路徑和系統模塊路徑的,更換項目結構是不可能的,那么我們該如何引入 token_util 呢 ?
?import sys
?print(sys.path)
?sys.path.append('../core')
?import token_util
  • 通過?sys?模塊將 module 模塊管理路徑打印就能發現只有全局的和當前路徑,我們可以將我們需要引入的包的路徑注冊到模塊管理路徑中,這樣我們就可以引用了。

  • 上面導入自定義模塊顯得很麻煩,隨著項目成長會分很多文件夾用來表示不同功能,這里文件夾就是包的概念。但是文件夾和包還是不太一樣的。只需要在文件夾下存在一個?__init__.py?就會變成包了。 這個文件就是你在調用包中模塊是自動調用,這個文件內容可以為空哦
  • 好像有了包的概念還是解決不了上面手動導入的問題,沒錯這里始終逃不掉需要手動導入的,我們可以將項目的根路徑導入到系統路徑中,這樣我們在導入模塊是只需要從根路徑出發導入即可。
  • 我們可以寫個腳本獲取跟路徑并注冊到系統路徑中
?import os
?import sys
?base_dir=os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.pa
?th.dirname(os.path.abspath(__file__)))))) # 取到路
?徑/Users/alex/Documents/work/PyProjects/py8days_camp
?print(base_dir)
?sys.path.append(base_dir) # 添加到sys.path?
  • 如果你還是覺得麻煩,不用擔心?pycharm?會幫助我們解決這個問題,我們通過pycharm?打開項目時會自動將項目的跟路徑注冊到系統路徑中。就像Idea 打開Java項目自動會管理 Package 空間一樣,

原文鏈接:https://juejin.cn/post/7139708627878674463

欄目分類
最近更新