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

python3 pyinstaller编译相关 和 python2兼容的一些问题

一: python2 和 python3的兼容问题

如果本地同时安装了python2python3, 且都配置了环境变量的情况下, 在命令行里如何区分呢?

python2:  py -2
python3:  py -3

如何区分python2的pip 与 python3 的pip呢

python2:  pip install xxx
python3:  pip3 install xxx

二: pyinstaller 编译区分

只有python2的情况下, 我们可以用如下命令进行打包

pyinstaller -F test.py

如果同时存在python2 和 3, 那么何区分一个py文件是用python2打包, 还是python3打包呢?

python2:  py -2 -m PyInstaller -F --version-file version_info.txt downloader.py
python3:  py -3 -m PyInstaller -F --version-file version_info.txt downloader.py

其中 -2-3指的是用哪个python版本, -m指的是用python环境中指定的模块
更详细的参数请参考
pyinstaller打包exe,设置发布者,版权,产品名称等版本信息

三: python3编译相关问题

1.标准输入输出编码问题
编译出的exe, 作为子进程, 然后主进程通过控制标准输入输出来进行交互, 具体实现方式请参考:
python控制exe, 并进行输入输出
正常我们在pycharm里输出

import sys
print(sys.stdout.encoding)
print(sys.stdin.encoding)

运行结果是
在这里插入图片描述
但是如果我们把这段代码用pyinstaller编译成exe, 然后再运行, 我们会发现, 输出变成了:
在这里插入图片描述
所以我们一定要手动设置上标准输入输出的编码, 否则如果传输过程中有中文, 那么就会出问题

sys.stdin.reconfigure(encoding='utf-8')
sys.stdout.reconfigure(encoding='utf-8')

当然, 传递信息, 还是更推荐base64的方式, 这样无论环境怎么变化, 流程都是一致的


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

相关文章:

  • 320页PDF | 集团IT蓝图总体规划报告-德勤(限免下载)
  • Kafka参数了解
  • 小程序服务商常见问题
  • 常见git命令记录
  • 机器情绪及抑郁症算法
  • 游戏引擎中LOD渲染技术
  • 技术总结(二十八)
  • 腾讯的AI困局
  • 记录一次服务器redis被入侵
  • Strings Catalogs 中xcstrings文件删除本地化语言
  • 使用windows批处理,解决多个svn库提交和更新的需求
  • 广州自闭症干预机构专注提供个性化服务
  • 8-类图建模与对象图测试
  • 4. 奖励函数设置
  • 详细介绍Transformer!
  • LeetCode100之删除链表的倒数第N个节点(19)--Java
  • halcon3D gen_image_to_world_plane_map的图像高精度拼接技术
  • 企业风险监控4.0时代,大家都在关心什么问题?这20+个QA为你揭晓!
  • 2024软件测试面试题(持续更新)
  • 38.安卓逆向-壳-smali语法2(条件语句和for循环)
  • CSR 和 SSR 分别是什么?
  • 力扣 LeetCode 459. 重复的子字符串(Day4:字符串)
  • UVa 11288 Carpool
  • 打造专业问答社区:Windows部署Apache Answer结合cpolar实现公网访问
  • Cocos Creator《星际征服者》3D实时对战战机类游戏
  • 基于Springboot+微信小程序的健康饮食小程序 (含源码数据库)