(10)python开发经验

文章目录

      • [1 cp35 cp36什么意思](#1 cp35 cp36什么意思)
      • [2 找不到pip](#2 找不到pip)
      • [3 subprocess编码错误](#3 subprocess编码错误)
      • [4 导出依赖文件包含路径](#4 导出依赖文件包含路径)
      • [5 使用自己编译的python并且pyinstall打包程序](#5 使用自己编译的python并且pyinstall打包程序)

更多精彩内容
👉内容导航 👈
👉Qt开发 👈
👉python开发 👈

1 cp35 cp36什么意思

在Python的文件名或包名中,cp35cp36 通常指的是编译器版本,具体来说,它们代表的是CPython的版本号。CPython是Python的标准实现,使用C语言编写。因此,cp35 表示该文件或包是为CPython 3.5版本编译的,而 cp36 表示是为CPython 3.6版本编译的。

这些标识常用于预编译的Python扩展模块,以明确该模块适用于哪个Python版本。

2 找不到pip

错误信息:moduleNotFoundError: no module named pip

错误原因:执行pip install --upgrade pip命令后错误。

解决办法:执行python -m ensurepip

3 subprocess编码错误

这个错误通常是由于在使用 subprocess 模块执行命令时,输出的内容编码与系统默认的编码(在Windows上通常是GBK)不匹配引起的。

UnicodeDecodeError 表明尝试用GBK编码解码一段实际上不是GBK编码的字节序列。

shell 复制代码
Traceback (most recent call last):
  File "D:\Python\Python313\Lib\threading.py", line 1041, in _bootstrap_inner
    self.run()
    ~~~~~~~~^^
  File "D:\Python\Python313\Lib\threading.py", line 992, in run
    self._target(*self._args, **self._kwargs)
    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\Python\Python313\Lib\subprocess.py", line 1611, in _readerthread
    buffer.append(fh.read())
                  ~~~~~~~^^
UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 42: illegal multibyte sequence

解决办法:

指定正确的编码:如果你知道命令输出的编码格式,可以在解码时指定正确的编码。例如,如果输出是UTF-8编码的,你可以这样处理:

python 复制代码
import subprocess

result = subprocess.run(['your_command'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, encoding='utf-8')
print(result.stdout)

4 导出依赖文件包含路径

  • 使用pip freeze > requirements.txt导出依赖时,如果是直接安装的whl包,就会包含路径;

  • 解决办法:将路径改为版本号;

  • 使用pip list --format=freeze > requirements.txt导出就可以;

5 使用自己编译的python并且pyinstall打包程序

使用自己编译的python程序开发pyqt时,使用pyinstall打包失败

解决办法:编译的时候加上--enable-shared



相关推荐
deephub7 分钟前
LLM 幻觉的架构级修复:推理参数、RAG、受约束解码与生成后验证
人工智能·python·大语言模型·ai幻觉
im_AMBER9 分钟前
Leetcode 160 最小覆盖子串 | 串联所有单词的子串
开发语言·javascript·数据结构·算法·leetcode
Rabitebla11 分钟前
【数据结构】动态顺序表实现详解:从原理到接口设计(面试视角)
c语言·开发语言·数据结构·c++·面试·职场和发展
郝学胜-神的一滴20 分钟前
Linux 高并发基石:epoll 核心原理 + LT/ET 触发模式深度剖析
linux·运维·服务器·开发语言·c++·网络协议
A_aspectJ28 分钟前
Java开发的学习优势:稳定基石与多元可能并存的技术赛道
java·开发语言
qq_2837200530 分钟前
Python 模块精讲:collections —— 高级数据结构深度解析(defaultdict、Counter、deque)
java·开发语言
山半仙xs32 分钟前
基于卡尔曼滤波的人脸跟踪
人工智能·python·算法·计算机视觉
kronos.荒36 分钟前
动态规划——零钱兑换(python)
python·动态规划
2401_8371638938 分钟前
CSS如何实现网页打印样式优化_利用@media print重写布局
jvm·数据库·python
wjs202442 分钟前
Chart.js 饼图指南
开发语言