当前位置: 首页 > news >正文

python创建项目环境及项目打包

目录

  • 创建项目环境
    • conda创建环境常用命令
    • 创建项目虚拟环境
      • 创建虚拟环境
      • 激活虚拟环境
      • 安装第三方库
  • pyinstaller 打包
    • 常用参数组合
  • 嵌入式打包
    • 下载嵌入式版本的python
    • 配置环境
    • 无参调用
    • 可完善
  • nuitka打包

创建项目环境

conda创建环境常用命令

conda create -n py310 python=3.10.11
conda env list
activate
deactivate
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple XX
conda listconda remove -n  需要删除的环境名 --all# 复制conda虚拟环境
conda create -n new_name --clone base# Spec List
# 如果需要在具有 相同操作系统 的计算机之间复制环境,则可以生成 spec list。
conda list --explicit > spec-list.txt
# 重现环境
conda create  --name python-course --file spec-list.txt# Environment.yml
# 使用 -export 选项生成一个 environment.yml 文件,以在 不同的平台和操作系统之间 复现项目环境
# spec list 文件和 environment.yml 文件之间的区别在于: environment.yml 文件不针对特定操作系统,并且使用YAML格式。
# environment.yml 仅列出了软件包名称,由 conda 基于软件包的名称构建环境。 另一个区别是 -export 还包括使用pip安装的软件包,而 spec list 则没有。
# 导出 environment.yml 文件
conda env export > environment.yml
# 重现环境
conda env create -f environment.yml# Conda Pack
# 用于无网络环境
# conda-pack 指定平台和操作系统,目标计算机必须具有与源计算机相同的平台和操作系统
# 需安装 conda-pack,并确保您位于 root 或 base 环境中,以便 conda-pack 在子环境中可用。Conda-pack 可通过 conda-forge 或者 PyPI 安装。
# conda-forge
conda install -c conda-forge conda-pack
# PyPI
pip install conda-pack
# ###打包一个环境###
# Pack environment my_env into my_env.tar.gz
conda pack -n my_env
# Pack environment my_env into out_name.tar.gz
conda pack -n my_env -o out_name.tar.gz
# Pack environment located at an explicit path into my_env.tar.gz
conda pack -p /explicit/path/to/my_env
# ###重现环境###
# Unpack environment into directory `my_env`
mkdir -p my_env
tar -xzf my_env.tar.gz -C my_env
# Use Python without activating or fixing the prefixes. Most Python
# libraries will work fine, but things that require prefix cleanups
# will fail.
./my_env/bin/python
# Activate the environment. This adds `my_env/bin` to your path
source my_env/bin/activate

创建项目虚拟环境

从Python 3.3版本起,Python标准库自带了venv模块用于创建虚拟环境。

创建虚拟环境

python -m venv env

这将在当前目录下生成一个名为my_venv的文件夹,其中包含了独立的Python解释器和pip包管理器。
在这里插入图片描述
18.2M

激活虚拟环境

  • Windows系统:
.\env\Scripts\activate
  • Linux或macOS系统:
$ source env/bin/activate

激活后,终端前缀将显示虚拟环境名,表示当前正在使用该环境的Python解释器。

安装第三方库

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy # 83.6M - 18.2M
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib # 
pip list  # 130M-83.6M

pyinstaller 打包

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller

打包成文件夹的形式

pyinstaller your_program.py
pyinstaller -F your_program.py

常用参数组合

# 基础命令
pyinstaller myscript.py
# 初次打包建议添加-c参数,可以同过cmd黑窗口查看打包问题
pyinstaller -c myscript.py
# 生成一个单独的exe文件,适合无文件操作的程序
pyinstaller -F myscript.py
# 生成一个单独的exe文件,适用windows系统,适合无文件操作的程序,下面2个是一样的效果。
pyinstaller -F -w myscript.py
pyinstaller -F --windowed myscript.py
# 生成一个文件夹,文件夹中包含exe执行程序,适合有一定文件夹或文件的操作程序。
pyinstaller -D --windowed myscript.py# 针对文件生成的最终位置,使用--distpath=参数指定
pyinstaller -D --windowed --distpath='C:\Users\xxx\xxx\xx' myscript.py
# 针对文件生成的exe文件名字,使用--name=TYQT参数指定
pyinstaller -D --windowed --distpath='C:\Users\xxx\xxx\xx' --name='TYQT' myscript.py
# 针对文件生成的exe的图标,使用--icon=参数指定,zaiwindows系统下,需要使用ico图标,如果是png直接百度在线转
pyinstaller -D --windowed --distpath='C:\Users\xxx\xxx\xx' --name='TYQT' --icon='icon.ico' myscript.py
# 针对exe程序以来的文件夹和文件,使用--add-data(比如.txt)和--add-binary(程序可能依赖其他.exe命令)参数指定
# --add-data和--add-binary参数实际是2个文件,在windows是通过;分号区分复制前和后的,在linux的符号是:。
# 下边的语句就是将项目的data/excel/订单记录表.xlsx文件复制到C:\Users\lenovo\PycharmProjects\程序打包文件\myscript\data\excel文件夹下,myscript\data\excel会自动创建。
pyinstaller -D --windowed --distpath='C:\Users\xxx\xxx\xx' --name='TYQT' --icon='icon.ico' --add-data=data/excel/订单记录表.xlsx;./data/excel myscript.py

嵌入式打包

下载嵌入式版本的python

链接: https://www.python.org/downloads/windows/
在这里插入图片描述

配置环境

解压该压缩包,进入该文件夹里,
在这里插入图片描述
更改python310._pth文件里面的内容:
在这里插入图片描述
在这里插入图片描述

只有导入了site,才能正常运行程序。也要把上级文件夹(…)加进去,因为最终我们的Python代码会放在这个文件夹的上级。

下载get-pip.py文件
链接: https://bootstrap.pypa.io/pip/
在这里插入图片描述
将get-pip.py放到python解释器同级目录
进入该文件夹,打开cmd

.\python.exe get-pip.py

在这里插入图片描述
得到生成的两个文件夹Lib、Scripts:
在这里插入图片描述
进入Scripts文件夹,打开cmd,用这个文件夹的pip进行安装你自己的程序所需要的第三方库
在这里插入图片描述

无参调用

建立script文件, 在文件夹内编写main.py

#!/usr/bin/python
# -*- coding: utf-8 -*-import os
import sysBASE_PATH = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
print(BASE_PATH)
sys.path.append(BASE_PATH)print("hello, 123456!")
print("按任意键继续...")
input()  # 这里input()函数会暂停并等待用户输入

通过bat文件调用,run.bat

.\python-3.10.11-embed-amd64\python.exe .\script\main.py
pause

通过exe文件调用,需先编写run.c

#include <stdlib.h>
int main()
{system(".\\python-3.10.11-embed-amd64\\python.exe .\\script\\main.py");
}

编写run.c, 得到run.exe
在这里插入图片描述
整个文件夹的目录
在这里插入图片描述
去除第三方库,整个项目只有19M,压缩后只有8M

可完善

安装第三库失败时,可在python环境版本相同时,直接copy
将py文件转为pyd加密后,再调用
考虑带参数的调用
考虑带界面的调用

nuitka打包

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple nuitkanuitka --follow-import-to=mdl main.py
nuitka --standalone --output-dir=out2 main.py
nuitka --onefile --output-dir=out3 main.py        不建议使用python -m nuitka --standalone --remove-output {your_python_program_name}.py
nuitka --mingw64 --show-progress --standalone --disable-console --enable-plugin=matplotlib --plugin-enable=numpy --onefile --remove-output camera.py

nuitka打包后的exe体积小了,在本机运行无问题;但迁移到其他计算机会遇到各种问题。


http://www.mrgr.cn/news/4196.html

相关文章:

  • 微软AI人工智能认证有哪些?
  • [游戏开发] LuaTable转string存读二进制文件
  • 数据结构(邓俊辉)学习笔记】优先级队列 04——完全二叉堆:插入与上滤
  • vue2 动态组件
  • 【Qt】输入类控件QLineEdit
  • Springboot3 HttpUtil post、get请求
  • 【操作系统 / 系统编程】2025 秋招超详细复习指南 - 基于 Linux 环境的全面复习 - 持续更新(目前1.3w字)
  • presto 分页
  • Element-ui table进阶使用
  • 设计模式六大原则(四)--接口隔离原则
  • 如何使用AWS EC2资源?
  • 【经典算法】BFS_最短路问题
  • 将 hugo 博客搬迁到服务器
  • javaEE中自定义注解以及注解的解析
  • 【HTML】从0开始构建HTML页面
  • 探索Ruby在物联网世界的无限可能:智能连接与创新应用
  • 高校迎新系统app/基于android的高校迎新系统的设计与实现
  • Tomcat使用及负载均衡(最全源码安装及配置使用教程)
  • 如何提升网络对AI大模型流量的承载能力?
  • kotlin adapter赋值失效