Mac安装Python-3.10.13

前言

  • Python-3.10最后一个提供dmg安装包的版本是3.10.11, 其实直接安装可以省不少事

安装步骤

  • 见Python-3.10.13/README.rst
bash 复制代码
# 进入安装压缩包解压后的目录
cd /Users/tedczj/WorkPlace/Python SDK/Python-3.10/Python-3.10.13
sudo su
./configure --enable-optimizations #说是用到的包会用stable版本的,很合我的心意就加上了,正常直接 ./configure 也可以
make
make install #安装完成
  • 然后在Pycharm里创建虚拟环境报错了,看起来像是python依赖的ssl模块的问题
sql 复制代码
# Execute Command
/usr/local/bin/python3.10 /Applications/PyCharm.app/Contents/plugins/python/helpers/virtualenv-20.16.7.pyz /Users/tedczj/WorkPlace/mobot/mobot-exercise/v0.1/venv

# Error Occured
ModuleNotFoundError: No module named '_ssl'

# Command Output
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/local/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/Applications/PyCharm.app/Contents/plugins/python/helpers/virtualenv-20.16.7.pyz/__main__.py", line 167, in <module>
  File "/Applications/PyCharm.app/Contents/plugins/python/helpers/virtualenv-20.16.7.pyz/__main__.py", line 161, in run
  File "/Applications/PyCharm.app/Contents/plugins/python/helpers/virtualenv-20.16.7.pyz/virtualenv/__init__.py", line 1, in <module>
  File "/Applications/PyCharm.app/Contents/plugins/python/helpers/virtualenv-20.16.7.pyz/virtualenv/run/__init__.py", line 9, in <module>
  File "/Applications/PyCharm.app/Contents/plugins/python/helpers/virtualenv-20.16.7.pyz/virtualenv/seed/wheels/__init__.py", line 1, in <module>
  File "/Applications/PyCharm.app/Contents/plugins/python/helpers/virtualenv-20.16.7.pyz/virtualenv/seed/wheels/acquire.py", line 9, in <module>
  File "/Applications/PyCharm.app/Contents/plugins/python/helpers/virtualenv-20.16.7.pyz/virtualenv/seed/wheels/bundle.py", line 2, in <module>
  File "/Applications/PyCharm.app/Contents/plugins/python/helpers/virtualenv-20.16.7.pyz/virtualenv/seed/wheels/periodic_update.py", line 9, in <module>
  File "/usr/local/lib/python3.10/ssl.py", line 99, in <module>
    import _ssl             # if we can't import it, let the error propagate
ModuleNotFoundError: No module named '_ssl'
  • 查了一下解决大概分2步:
    1. 本机安装openssl
    2. python安装的配置文件需要调整
bash 复制代码
brew install openssl@3
Warning: openssl@3 3.1.2 is already installed and up-to-date.

which openssl
/opt/homebrew/bin/openssl

-l /opt/homebrew/bin/openssl
lrwxr-xr-x@ 1 tedczj  admin  37 Sep  2 23:21 /opt/homebrew/bin/openssl -> ../Cellar/openssl@3/3.1.2/bin/openssl
  • 注意这里用了个相对路径,实际位置要到你的homebrew根目录去找Cellar文件夹的位置,我这里的绝对路径是
bash 复制代码
/opt/homebrew/Cellar/openssl@3/3.1.2/bin/openssl

ls
AUTHORS.md		NEWS.md			lib #注意这个文件夹名是lib 还是lib64
CHANGES.md		README.md		share
INSTALL_RECEIPT.json	bin
LICENSE.txt		include
  • 重新解压python安装压缩包
  • 修改Python-3.10.13/Modules/Setup
ruby 复制代码
# Socket module helper for socket(2)

_socket socketmodule.c # 放开注释

  

# Socket module helper for SSL support; you must comment out the other

# socket line above, and edit the OPENSSL variable:

OPENSSL=/opt/homebrew/Cellar/openssl@3/3.1.2 # 替换成本机openssl安装目录

_ssl _ssl.c \ # 放开注释

-I$(OPENSSL)/include -L$(OPENSSL)/lib \ # 放开注释 上面的目录是lib这里就是lib, 上面如果是lib64这里就是lib64

-lssl -lcrypto # 放开注释

#_hashlib _hashopenssl.c \

# -I$(OPENSSL)/include -L$(OPENSSL)/lib \

# -lcrypto
  • 重新执行安装流程
相关推荐
HappRobot8 分钟前
python类和对象
开发语言·python
盼哥PyAI实验室21 分钟前
Python YAML配置管理:12306项目的灵活配置方案
开发语言·python
哈哈老师啊33 分钟前
Springboot简单二手车网站qs5ed(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
JIngJaneIL38 分钟前
基于Java+ vue图书管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
Github掘金计划1 小时前
开发者狂喜!GitHub 官方开源:支持 Copilot/Cursor,规范即代码,27k Star 封神!
java·python·kafka·github·copilot
shenzhenNBA1 小时前
python用openpyxl操作excel-单元格样式操作
python·excel·openpyxl·单元格样式
IT_陈寒1 小时前
Vue 3.4 实战:5个被低估的Composition API技巧让我的开发效率提升40%
前端·人工智能·后端
VX:Fegn08951 小时前
计算机毕业设计|基于springboot + vue考勤管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
岁月宁静1 小时前
多模态 Agent 技术全景解析 — 从模型能力、Agent 架构到工程化与商业落地
python·agent
试着1 小时前
【VSCode+AI+测试】连接ai大模型
ide·人工智能·vscode·python·学习·编辑器·ai-test