可执行文件
生成python的.exe 可执行文件
pyinstaller.exe xxx.py
注意,对于win7系统,只支持python3.8版本生产的可执行文件,需要额外安装python3.8 及对应版本的pyinstaller
生成python动态链接库.pyd文件
.pyd文件是python中使用的编译后的二进制文件,类似于.dll 和.so文件。常用来进行代码加密和封装。
这里使用cthon编译python生产.pyd文件
安装cython
pip install cython
创建setup.py文件,用于配置相关信息,并写入如下内容:
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
执行命令后,会再当前目录下生产对应的.c和,.pyd文件
当python脚本文件名和内部函数名称不一致时调用pyd文件会报module初始化错误,这时需要在脚本内添加init函数的定义(空函数即可)。
python脚本可以直接import生产的pyd 文件。
离线打包python运行所需依赖
对于把python应用部署在离线电脑的场景,需要再离线电脑上安装应用所需的依赖,这里使用pipreqs 工具;
安装pipreqs 工具
pip install pipreqs
抓取当前文件夹内项目所需的依赖,并保存到requirements.txt文件内
pipreqs .
命令执行后系统会在本地生产requirements.txt 文件,并把依赖包的名称及版本信息写入其中;
创建packages文件夹用于存放下载的依赖包
mkdir packages
运行
pip download -r requirements.txt -d packages
当遇到安装版本冲突是可修改requirements.txt内的版本
下载成功后所有的安装文件就已经在package 中了
打包package 文件
zip -r offline_packages.zip requirements.txt packages
拷贝到目标机器 (包含requirements.txt文件)
解压文件
unzip offline_packages.zip
使用pip完成本地安装:
pip install --no-index --find-links=packages -r requirements.txt
python和pip的安装
当然安装python 和 pip,再使用pip 安装本地其他包,
通常python的标准包可以在这里找到:https://pypi.org/
1. 先安装python
在 https://www.python.org/downloads/下载对应的python安装程序
2. 安装pip
在 https://bootstrap.pypa.io/pip/pip.pyz下载pip安装包。其他安装方式参见https://pip.pypa.io/en/stable/installation/
下载后直接运行:
.\pip.pyz
3. 使用pip安装本地包
进入.whl 文件的所在目录,安装目录下的所有包
pip install -e ./
在有网络的条件下,推荐使用pip安装requirements.txt文件内列举的包:
pip install -r requirements.txt
常用pip指令有:
pip install numpy== #查看源上包含的版本
pip install numpy==1.24.1 #安装指定版本1.24.1
pip show numpy #查看包的信息
pip list #列出所有已安装的包
使用conda并创建python虚拟环境
1. 创建python虚拟环境
conda create --name <yourEnv> python=3.10 numpy pandas
conda create --name <yourEnv> --clone <baseEnv>
2. 进入环境
conda activate <yourEnv> # 进入环境
conda deactivate <yourEnv> #退出环境
3. 依据requirements.txt创建python环境
conda install --yes --file requirement.txt
4. conda常用命令
conda list #显示已安装的包
conda install numpy scikit-learn #安装包
conda env remove -n <yourEnv> #删除环境
conda env list #查看现有环境
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/