Pycharm 安装两种不同版本的解释器

背景

Pycharm使用的解释器是python3.11,python3.9.x之后不支持win7;有同事需要在win7上使用python制作的exe,而了"win7环境下运行python打包exe提示找不到api-ms-win-core-path-l1-1-0.dll"。

过程

查找了一些资料,发现直接将dll打包金exe也是一种方法,但也有人反映不成功。怀疑需要兼容win7 32bit的dll。

参考文献1中提到使用python3.9以下的版本;在不希望删除原本的python3.11的情况下,需要再为Pycharm提供一个解释器(选定python3.8.10 32bit版本)。要为Pycharm提供一个新的解释器,可以通过再安装python3.8.10于本地电脑实现(同一个电脑上存在两个python版本;查阅了一些资料,只要文件夹不同,是可以的;两个python版本在安装时都要设置环境变量)。

安装好新的python3.8.10后,在Pycharm中指定解释器,可以看到出现的python3.8.10是灰色的、带有红色叉号。不确定是不是没有重新启动电脑导致环境变量没有生效导致。重启启动电脑后,发现解释器可以正常选择python3.8.10了。

遇到的问题

1. 安装scipy报错

通过查看参考3和4,两种方法。第一种方法没来得及尝试;使用了第二种方法,OK。

bash 复制代码
#方法一
pip install vswhere

#方法二 scipy 1.9.1 应该支持32bit
pip install scipy==1.9.1

2 No module named "Crypto" 解决方案

见参考文献5。

3. 打包后的异常退出问题

采用python3.6.6为解释器(非3.8.10),打包生成exe后,在win10上运行报错如下,win11上没有报错信息。

通过将"禁用UPX压缩",发现"原先异常退出"不再复现。怀疑是upx的版本较高(压缩工具;可用于python3.11.6),与python3.6.6不兼容导致的。之所以会发现与upx不兼容,是因为参考文献6中的一句话,如下所示。

调试和优化

如果你的应用程序在打包后出现问题,你可以在 .spec 文件中添加 debug=True 来生成调试信息,或者使用 upx=False 来禁用 UPX 压缩,以便更容易地调试。

参考文献

  1. win7环境下运行python打包exe提示找不到api-ms-win-core-path-l1-1-0.dll_python api-ms-win-core-path-l1-1-0.dll-CSDN博客
  2. (99+ 封私信 / 80 条消息) 一台电脑能否同时安装不同版本的Python? - 知乎
  3. python - Installation of sklearn / scipy fails in Pycharm IDE with could not find vswhere.exe - Stack Overflow
  4. 在Pycharm IDE中安装sklearn / scipy失败,因为找不到vswhere.exe _大数据知识库
  5. No module named "Crypto" 解决方案 - 星钥无痕 - 博客园
  6. 浅谈Python之Pyinstaller打包spec文件_python spec-CSDN博客
相关推荐
好家伙VCC2 小时前
### WebRTC技术:实时通信的革新与实现####webRTC(Web Real-TimeComm
java·前端·python·webrtc
前端玖耀里3 小时前
如何使用python的boto库和SES发送电子邮件?
python
serve the people3 小时前
python环境搭建 (十二) pydantic和pydantic-settings类型验证与解析
java·网络·python
小天源3 小时前
Error 1053 Error 1067 服务“启动后立即停止” Java / Python 程序无法后台运行 windows nssm注册器下载与报错处理
开发语言·windows·python·nssm·error 1053·error 1067
喵手4 小时前
Python爬虫实战:HTTP缓存系统深度实战 — ETag、Last-Modified与requests-cache完全指南(附SQLite持久化存储)!
爬虫·python·爬虫实战·http缓存·etag·零基础python爬虫教学·requests-cache
喵手4 小时前
Python爬虫实战:容器化与定时调度实战 - Docker + Cron + 日志轮转 + 失败重试完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·容器化·零基础python爬虫教学·csv导出·定时调度
2601_949146534 小时前
Python语音通知接口接入教程:开发者快速集成AI语音API的脚本实现
人工智能·python·语音识别
寻梦csdn5 小时前
pycharm+miniconda兼容问题
ide·python·pycharm·conda
Java面试题总结6 小时前
基于 Java 的 PDF 文本水印实现方案(iText7 示例)
java·python·pdf
不懒不懒6 小时前
【决策树算法实战指南:从原理到Python实现】
python·决策树·id3·c4.5·catr