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
  • 重新执行安装流程
相关推荐
本地化文档几秒前
pygmt-docs-l10n
python·github·gitcode·sphinx·pygmt·gmt·crowdin
Web3&Basketball几秒前
用 SGLang 决策端点做毫秒级 Agent 路由
python·大模型·agent·强化学习·多模态·推理
yi0113 分钟前
DAY19: LeetCode 28 找出字符串中第一个匹配项的下标
人工智能·笔记·python·算法·leetcode
hhzz21 分钟前
【YOLO 入门到精通 08】推理预测完全指南:多数据源、流式推理与性能优化
人工智能·python·yolo·计算机视觉·性能优化
benchmark_cc25 分钟前
第一次补历史 K 线:按股票拆还是按日期拆请求?
python·数据分析·pandas·量化交易·股票数据·quantdash
栈溢出了26 分钟前
LangGraph State 学习笔记
开发语言·人工智能·python
打工仔折腾 AI27 分钟前
从零写一个CAD 04:中键拖动平移,抓住一个点让它一直待在鼠标底下
人工智能·后端·python·性能优化·计算机外设·ai agent 实战
论文复现现场32 分钟前
RTX 3090 24GB 适合科研吗?单卡论文复现、PyTorch 显存检查与 OOM 排错
人工智能·pytorch·python·深度学习·cuda·rtx3090
FYKJ_201034 分钟前
springboot家政服务平台66766-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·mysql·spark·课程设计
wechatbot8881 小时前
企微第三方自动化开发:原生能力无阉割 API 开放平台介绍
后端·ios·微信·企业微信·ai编程·ipad