日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Pyhton 模块和包

發布時間:2025/5/22 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Pyhton 模块和包 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

模塊

  • 每一個以擴展名 py 結尾額 Python 源代碼文件都是一個模塊
  • 模塊名 同樣也是一個標識符,需要符合標識符的命名規則
  • 在模塊中定義的 全局變量、函數、類 都是提供給外接直接使用的工具
模塊的兩種導入方式

1)import 導入

import 模塊名1,模塊名2

import 模塊名1 import 模塊名2
  • 導入之后
    • 通過 模塊名. 使用 模塊提供的工具——全局變量、函數、類

使用 as 指定模塊的別名

import 模塊名1 as 模塊別名

注意:模塊別名應該 符合 大駝峰命名法

2)from…import 導入

  • 如果希望從某一個模塊中,導入 部分工具,就可以使用 from … import 的方式
  • import 模塊名 是一次性把模塊中 所有工具全部導入,并且通過 模塊名/別名 訪問
# 從模塊 導入 某一個工具 from 模塊1 import 工具名
  • 導入之后
    • 不需要通過 模塊名.
    • 可以直接使用 模塊提供的工具——全局變量、函數、類

注意:
如果 兩個模塊,存在同名的函數,那么后導入模塊的函數,會覆蓋掉先導入的函數

  • 如果代碼沖突,可以使用 as 關鍵 給其中一個模塊起一個別名

from…import * (不推薦使用)

# 從模塊 導入 所有工具 from 模塊名1 import *

模塊的搜索順序

Python 的解釋器在 導入模塊時,會:

  • 搜索 當前目錄 指定模塊名的文件,如果有就直接導入
  • 如果沒有,再搜索 系統目錄
  • 注意:在給文件起名時,不要和系統的模塊文件 重名

    Python 中每一個模塊都有一個內置屬性 __file__ 可以查看模塊的 完整路徑

    使模塊下方的測試代碼在導入時不會執行

    • 在導入文件時,文件中所有沒有任何縮進的代碼 都會被執行一遍

    __name__屬性

    • __name__屬性 可以做到,測試模塊的代碼只在測試情況下被運行,而在被導入時不會被執行
    • __name__ 是 Python 的一個內置屬性,記錄著一個字符串
    • 如果 是被其他文件導入的,__name__就是 模塊名
    • 如果是當前執行的程序 __name__是 __main__

    示例:

    # 導入模塊 # 定義全局變量 # 定義類 # 定義函數# 在代碼的最下方 def main():# ...pass# 根據 __name__判斷是否執行下方代碼 if __name__ == '__main__':main()

    • 包是一個 包含多個模塊的 特殊目錄
    • 目錄下有一個 特殊的文件 __init__.py
    • 使用 import 包名 可以一次性導入 包 中所有的模塊

    __init__.py

    • 要在外界使用 包 中的模塊,需要在 __init__.py 中指定 對外界提供的模塊列表
    # 從 當前目錄 導入 模塊列表 from . import 模塊名 from . import 模塊名

    例如:

    發布模塊

    制作發布壓縮包步驟

    1)創建 setup.py

    • setup.py 的文件
    from distutils.core import setupsetup(name="vvcat_package", # 包名version="1.0", # 版本description="用來測試", # 描述信息long_description="用來測試如何發布壓縮包", # 完整描述信息author="vvcat", # 作者author_email="206647497@qq.com", #作者郵箱url="https://blog.csdn.net/qq_44989881?t=1", # 主頁py_modules=["vvcat_package.test1", "vvcat_package.test2"]) # 包中的模塊

    有關字典參數的詳細信息,可以參閱官方網站:
    https://docs.python.org/2/distutils/apiref.html


    先cd到setup.py 所在的目錄 ,通過 ls -l 命令 可以看到有以下幾個文件

    2)構建模塊

    python3 setup.py build


    通過 tree命令可以看到當前目錄結構
    如果沒有 tree 命令,可以通過以下操作,安裝

    sudo apt-get install tree

    使用 tree命令 后會看到
    使用 python3 setup.py build命令 生成的 build 文件夾中的內容

    3)生成發布壓縮包

    python3 setup.py sdist


    安裝模塊

    tar -zxvf 包名-1.0.tar.gzsudo python3 setup.py install

    使用 tar -zxvf vvcat_package-1.0.tar.gz 命令后

    會出現 vvcat_package-1.0文件夾

    vvcat_package-1.0文件夾中的內容
    使用 cat PKG-INFO命令可以查看到 PKG-INFO文件中的內容

    使用 sudo python3 setup.py install命令安裝vvcat_package模塊

    查看 vvcat_package模塊安裝后所在的目錄,會看到以下幾個文件:
    vvcat_package vvcat_package-1.0.egg-info

    通過 ipython3 對安裝的模塊進行測試

    卸載模塊

    直接從安裝目錄下,把安裝模塊的目錄 刪除就可以

    cd /usr/local/lib/python3.6/dist-package/sudo rm -r vvcat_package*

    根據以上兩條命令進行如下操作:
    先查看模塊 安裝的目錄

    # __file__ 用來查看模塊所在的目錄 vvcat_package.__file__


    通過 cd 命令 到 dist-packages 目錄下

    最后使用 sudo rm -r vvcat_package*命令便可以卸載掉 安裝的 vvcat_package模塊
    以下是刪除后只剩下 vvcat_package-1.0.egg-info 文件

    當再次使用 ipython3 調用該模塊時,會顯示沒有該模塊。

    pip 安裝第三方模塊
    • pip 是一個現代的,通用的 Python 包管理工具
    • 提供了對 Python 包的查找、下載、安裝、卸載等功能

    安裝和卸載命令如下:

    # 將模塊安裝到 Python 3.x 環境 sudo pip3 install pygame sudo pip3 uninstall pygame

    在 Mac 下安裝 iPython

    sudo pip install ipython

    在 Linux 下安裝 iPython

    sudo apt install ipython3

    總結

    以上是生活随笔為你收集整理的Pyhton 模块和包的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。