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
  • 重新执行安装流程
相关推荐
牛客企业服务1 分钟前
2025年AI面试推荐榜单,数字化招聘转型优选
人工智能·python·算法·面试·职场和发展·金融·求职招聘
YongGit2 分钟前
探索 AI + MCP 渲染前端 UI
前端·后端·node.js
胡斌附体13 分钟前
linux测试端口是否可被外部访问
linux·运维·服务器·python·测试·端口测试·临时服务器
77qqqiqi22 分钟前
正则表达式
java·后端·正则表达式
likeGhee1 小时前
python缓存装饰器实现方案
开发语言·python·缓存
@大迁世界1 小时前
AR 如何改变我们构建网站的方式
后端·ar·restful
项目題供诗1 小时前
黑马python(二十五)
开发语言·python
读书点滴1 小时前
笨方法学python -练习14
java·前端·python
RainbowSea1 小时前
问题:后端由于字符内容过长,前端展示精度丢失修复
java·spring boot·后端
笑衬人心。1 小时前
Ubuntu 22.04 修改默认 Python 版本为 Python3 笔记
笔记·python·ubuntu