網站首頁 編程語言 正文
一、Python包
python包在開發中十分常見,一般通過導入包含特定功能的python模塊包進行使用。當然,也可以自己創建打包模塊,然后發布,安裝使用。
1、安裝包
在線安裝包:pip install 包名;
安裝第三方包:python setup.py ?install (幾乎每個python第三方包中都有這個setup.py文件,這個文件是作者打包時設置的文件,而安裝第三方包時,也是要先進入到setup.py文件所在目錄,然后執行python setup.py install)
2、distutils 和 setuptools 兩種打包的工具
distutils
distutils 是 python 標準庫的一部分,這個庫的目的是為開發者提供一種方便的打包方式, 同時為使用者提供方便的安裝方式。當我們開發了自己的模塊之后,使用distutils的setup.py打包。
使用詳情如下:
(1)在自己項目的根目錄下新建一個setup.py的腳本,然后在腳本中輸入下面的代碼,假設你要打包的module名稱為str.py
from distutils.core import setup
setup (
name = 'str',
version = '1.0',
py_modules = ['str'],
)
(3)根目錄下執行打包命令:python setup.py sdist ,將自己的python文件打包,此時會發現多了一個文件夾dist,此文件夾下面多了一個str-0.1.tar.gz的壓縮包,這個壓縮包里面就是untitled目錄下的項目代碼
(4)安裝包:進入cmd,然后輸入dos命令進入setup.py文件所在目錄,然后輸入python setup.py install。
setuptools
setuptools是distutils的增強版。它可以幫助我們更簡單的創建和分發Python包,尤其是擁有依賴關系的。用戶在使用setuptools創建的包時,并不需要已安裝setuptools,只要一個啟動模塊setup.py即可。
使用詳情如下:
(1)安裝pip install python-setuptools后,在自己項目的根目錄下新建一個setup.py的腳本(注意:每個目錄中都需要創建一個init.py的文件,表示這個目錄是一個包)
from setuptools import setup, find_packages
setup(
name = "demo",
version = "0.1",
packages = find_packages(), # 代表在當前目錄,以及當前目錄下,所有的python包(帶__init__.py的目錄)都搜索,并一起打成egg文件包。find_packages(xyz),就是搜索名稱為xyz的包,以及xyz的下層目錄的包搜索出來,并一起打成egg文件包
include_package_data=True, #包含數據文件
install_requires=reqs, #指明依賴,該參數包含說明依賴的字符串或列表
)
(2)根目錄下執行打包命令:python setup.py sdist_egg即可打包一個egg格式的包。可以看到,里面是一系列自動生成的文件。如圖:
(3)而dist中的壓縮包就是安裝包,此時默認的egg包,egg包就是zip包,如果需要使用egg包,簡單方法是name將egg后綴改成zip解壓即可(或者進入cmd,然后輸入dos命令進入setup.py文件所在目錄,然后輸入python setup.py install)(4)測試導入包:
實際項目中,安裝非官方的第三方包時,可以下載到本地后,在setup.py文件夾下執行python setup.py install,或者在包根目錄通過pip install -e . 安裝pip會自動將包復制到site-packages,他的作用是:
- 安裝site-packages/PackageName.egg-link文件
- 添加路徑 site-packages/easy-install.pth
原文鏈接:https://www.cnblogs.com/learning9/p/16537402.html
相關推薦
- 2022-08-15 springboot使用配置文件配置bean屬性產生中文亂碼問題
- 2022-07-04 Python繪制多因子柱狀圖的實現示例_python
- 2022-09-29 Python3中map(),reduce(),filter()的詳細用法_python
- 2023-04-07 C語言解決字符串中插入和刪除某段字符串問題_C 語言
- 2022-05-05 R語言因子類型的實現_R語言
- 2022-06-15 golang中net的tcp服務使用_Golang
- 2022-01-25 win10 更換JDK后 查詢JDK路徑還是原路徑怎么辦?
- 2022-11-19 C語言結構體成員賦值的深拷貝與淺拷貝詳解_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支