一、Python包 python包在開發中十分常見,一般通過導入包含特定功能的python模塊包進行使用。當然,也可以自己創建打包模塊,然後發佈,安裝使用。 1、安裝包 線上安裝包:pip install 包名; 安裝第三方包:python setup.py install (幾乎每個python第 ...
一、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.pyfrom 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