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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python的setuptools详解【2】find_packages()

發布時間:2025/3/21 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python的setuptools详解【2】find_packages() 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、提要

python中安裝包的方式有很多種:

  • 源碼包:python setup.py install
  • 在線安裝:pip install 包名
  • easy_install 包名
  • 如何創建以上的包,我們在上文展示如何通過"Python蛋",將自己的一個程序安裝到python環境中。

    本文重點指出,如何使用find_packages()將更多個資源打包成python蛋,并解釋如何調用。

    二 實驗2:生成多包項目,并安裝測試

    1.準備工作

    如果說 在每個帶有——init——。py的目錄,都市# 當前測試的目錄是 /tmp/demo;創建目錄-文件結構:`-- demo|-- helloapp| |-- hello.py| `-- __init__.py|-- __init__.py|-- myapp| |-- __init__.py| `-- myapp.py`-- setup.py# 2.編輯 setup.py from setuptools import setup, find_packagessetup(name="demo",version="1.0",author="zbj",author_email="22@qq.com",packages=find_packages( exclude=["*.tests", "*.tests.*", "tests"] ) #排除tests等 )# 3.編輯 hello.py def hello_func():print("HelloWorld")# 4.編輯 myapp.py def myapp_func():print("嘿嘿嘿")

    這里專門解釋find_packages()是啥東西?

    就是在當前目錄,以及當前目錄下,所有的python包(帶__init__.py的目錄)都搜索,并一起打成egg文件包。

    find_packages(xyz),就是搜索名稱為xyz的包,以及xyz的下層目錄的包搜索出來,并一起打成egg文件包。

    2.源碼安裝

    # 進入setup.py所在的那層目錄 cd /tmp/demo# 檢查setup.py 是否有錯誤(warning不是錯誤) python setup.py check# 安裝 python setup.py install

    用tree查看

    ?3.結果

    打包之后多出兩個文件夾,分別是demo.egg-info和dist。demo.egg-info是必要的安裝信息,

    而dist中的壓縮包就是安裝包,此時默認的egg包,egg包就是zip包,如果需要使用egg包,name將egg后綴改成zip解壓即可

    用unzip查看egg:

    $ cd? ?/usr/local/lib/python3.8/dist-packages? ? ? ? ? ? ? ? ?#進入python包目錄

    $? unzip -l? demo-1.0-py3.8.egg? ?
    Archive: ?demo-1.0-py3.8.egg
    ? Length ? ? ?Date ? ?Time ? ?Name
    --------- ?---------- ----- ? ----
    ? ? ? 174 ?2021-11-10 16:13 ? EGG-INFO/PKG-INFO
    ? ? ? 192 ?2021-11-10 16:13 ? EGG-INFO/SOURCES.txt
    ? ? ? ? 1 ?2021-11-10 16:13 ? EGG-INFO/dependency_links.txt
    ? ? ? ?15 ?2021-11-10 16:13 ? EGG-INFO/top_level.txt
    ? ? ? ? 1 ?2021-11-10 16:13 ? EGG-INFO/zip-safe
    ? ? ? ? 0 ?2021-11-10 16:03 ? helloapp/__init__.py
    ? ? ? ?42 ?2021-11-10 16:10 ? helloapp/hello.py
    ? ? ? 140 ?2021-11-10 16:13 ? helloapp/__pycache__/__init__.cpython-38.pyc
    ? ? ? 261 ?2021-11-10 16:13 ? helloapp/__pycache__/hello.cpython-38.pyc
    ? ? ? ? 0 ?2021-11-10 16:03 ? myapp/__init__.py
    ? ? ? ?45 ?2021-11-10 16:11 ? myapp/myapp.py
    ? ? ? 137 ?2021-11-10 16:13 ? myapp/__pycache__/__init__.cpython-38.pyc
    ? ? ? 260 ?2021-11-10 16:13 ? myapp/__pycache__/myapp.cpython-38.pyc
    --------- ? ? ? ? ? ? ? ? ? ? -------
    ? ? ?1268 ? ? ? ? ? ? ? ? ? ? 13 files

    4.測試

    測試的時候需要注意導包路徑和當前所在路徑
    目前所在路徑是: /tmp/demo
    直接進入python解釋器: python3(我自己安裝的python3版本)

    以上將兩個包內的文件通過python蛋裝入系統。注意,不同的包將有不同的from語句加載。

    參考文章

    Python打包之setuptools - 我用python寫Bug - 博客園

    總結

    以上是生活随笔為你收集整理的Python的setuptools详解【2】find_packages()的全部內容,希望文章能夠幫你解決所遇到的問題。

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