# Python使用

# 接口调用

  1. 先安装依耐导入插件requests
pip install requests
1
  1. 导入插件
import requests
1
  1. 调用接口并传递参数
url = 'http://localhost:8080/hello'
params = {'name': '张三'}
response = requests.get(url, params=params)
print(response.text)
1
2
3
4

# 依耐导出

  1. 先安装依耐导入插件requirements.txt
pip install -r requirements.txt
1
  1. 导出依耐
pip freeze > requirements.txt
1

导出成功后,在项目根目录下即可找到requirements.txt文件 这个文件中包含了项目所有的依耐,包括版本号(当前python解析器下安装的所有依耐)

# 项目打包

# 项目打包步骤

  1. 先安装pyinstaller

  2. 进入项目根目录,执行命令

pyinstaller --onefile main.py
1
  • 这里的main.py是项目的入口文件,根据实际情况修改
  1. 打包完成后,在dist目录下即可找到打包好的文件

这种打包方式会将项目所有的文件都打包到一个文件中,比较大,但是运行起来比较方便

# 遇到的问题

# 文件引入问题

打包后,运行报如下错误 错误截图

解决方案

  1. 在文件开头添加 resource_path 函数和必要的导入
import os
import sys

    def resource_path(relative_path):
        """ 获取资源文件的绝对路径,用于PyInstaller打包 """
        try:
            base_path = sys._MEIPASS
        except Exception:
            base_path = os.path.abspath(".")
        return os.path.join(base_path, relative_path)

    # 在加载样式表时调用resource_path函数    
    # 加载样式表
    with open(resource_path("style.qss"), 'r', encoding='utf-8') as f:
        app.setStyleSheet(f.read())

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  1. 使用以下命令打包
pyinstaller --onefile --add-data "style.qss;." main.py
1

注意,打包运行成功之后,发现项目中引入的图片没有正常显示,也是同样的问题

解决方案

  1. 在加载图片时调用resource_path函数
    # 加载图片
    icon_path = resource_path('static/favico.png')
1
2

2.添加static文件夹下的所有资源到打包中

pyinstaller --onefile --add-data "style.qss;." --add-data "static/static" main.py
1

# 更换打包后exe文件的图标

  1. 先准备一个图标文件,格式为.ico

  2. 在打包命令中添加--icon参数,指定图标文件的路径,我这里的图标文件是static/favico.ico

pyinstaller --onefile --add-data "style.qss;." --add-data "static/static" --icon "static/favico.ico" main.py
1
  1. 打包完成后,在dist目录下即可找到打包好的文件,文件图标可能不是指定的图标,把该exe文件复制出来图标可能就更新了。

# 窗口图标和任务栏图标

  1. 先准备一个图标文件,格式为.ico.png

  2. 在代码中添加窗口图标

from utils.utils import resource_path
from PySide6.QtGui import QIcon

    #  这个图标会显示在任务栏、窗口左上角、Alt+Tab 切换等位置
    window.setWindowIcon(QIcon(resource_path('static/favico.ico'))) # 或 .ico,但 QIcon 通常能处理
1
2
3
4
5