可執(zhí)行文件
生成python的.exe 可執(zhí)行文件
pyinstaller.exe xxx.py
注意,對于win7系統(tǒng)斑芜,只支持python3.8版本生產(chǎn)的可執(zhí)行文件谈撒,需要額外安裝python3.8 及對應(yīng)版本的pyinstaller
生成python動態(tài)鏈接庫.pyd文件
.pyd文件是python中使用的編譯后的二進(jìn)制文件蚕捉,類似于.dll 和.so文件律胀。常用來進(jìn)行代碼加密和封裝。
這里使用cthon編譯python生產(chǎn).pyd文件
安裝cython
pip install cython
創(chuàng)建setup.py文件情连,用于配置相關(guān)信息闪水,并寫入如下內(nèi)容:
from distutils.core import setup
from Cython.Build import cythonize
setup(
name = 'your project name',
ext_modules = cythonize(["xxx.py", "xxx.py"]),
)
生成 .pyc 文件
python setup.py build_ext --inplace
執(zhí)行命令后,會再當(dāng)前目錄下生產(chǎn)對應(yīng)的.c和,.pyd文件
當(dāng)python腳本文件名和內(nèi)部函數(shù)名稱不一致時調(diào)用pyd文件會報module初始化錯誤,這時需要在腳本內(nèi)添加init函數(shù)的定義(空函數(shù)即可)。
python腳本可以直接import生產(chǎn)的pyd 文件球榆。
離線打包python運行所需依賴
對于把python應(yīng)用部署在離線電腦的場景朽肥,需要再離線電腦上安裝應(yīng)用所需的依賴,這里使用pipreqs 工具持钉;
安裝pipreqs 工具
pip install pipreqs
抓取當(dāng)前文件夾內(nèi)項目所需的依賴衡招,并保存到requirements.txt文件內(nèi)
pipreqs .
命令執(zhí)行后系統(tǒng)會在本地生產(chǎn)requirements.txt 文件,并把依賴包的名稱及版本信息寫入其中每强;
創(chuàng)建packages文件夾用于存放下載的依賴包
mkdir packages
運行
pip download -r requirements.txt -d packages
當(dāng)遇到安裝版本沖突是可修改requirements.txt內(nèi)的版本
下載成功后所有的安裝文件就已經(jīng)在package 中了
打包package 文件
zip -r offline_packages.zip requirements.txt packages
拷貝到目標(biāo)機器 (包含requirements.txt文件)
解壓文件
unzip offline_packages.zip
使用pip完成本地安裝:
pip install --no-index --find-links=packages -r requirements.txt
python和pip的安裝
當(dāng)然安裝python 和 pip始腾,再使用pip 安裝本地其他包,
通常python的標(biāo)準(zhǔn)包可以在這里找到:https://pypi.org/
1. 先安裝python
在 https://www.python.org/downloads/下載對應(yīng)的python安裝程序
2. 安裝pip
在 https://bootstrap.pypa.io/pip/pip.pyz下載pip安裝包。其他安裝方式參見https://pip.pypa.io/en/stable/installation/
下載后直接運行:
.\pip.pyz
3. 使用pip安裝本地包
進(jìn)入.whl 文件的所在目錄空执,安裝目錄下的所有包
pip install -e ./
在有網(wǎng)絡(luò)的條件下浪箭,推薦使用pip安裝requirements.txt文件內(nèi)列舉的包:
pip install -r requirements.txt
常用pip指令有:
pip install numpy== #查看源上包含的版本
pip install numpy==1.24.1 #安裝指定版本1.24.1
pip show numpy #查看包的信息
pip list #列出所有已安裝的包
使用conda并創(chuàng)建python虛擬環(huán)境
1. 創(chuàng)建python虛擬環(huán)境
conda create --name <yourEnv> python=3.10 numpy pandas
conda create --name <yourEnv> --clone <baseEnv>
2. 進(jìn)入環(huán)境
conda activate <yourEnv> # 進(jìn)入環(huán)境
conda deactivate <yourEnv> #退出環(huán)境
3. 依據(jù)requirements.txt創(chuàng)建python環(huán)境
conda install --yes --file requirement.txt
4. conda常用命令
conda list #顯示已安裝的包
conda install numpy scikit-learn #安裝包
conda env remove -n <yourEnv> #刪除環(huán)境
conda env list #查看現(xiàn)有環(huán)境
conda install ffmpeg -c conda-forge #從conda-forge更新python安裝包,conda-forge上的版本會更新更加頻繁
參考:
https://pip.pypa.io/en/stable/installation/
https://packaging.python.org/en/latest/tutorials/installing-packages/