记一次python环境问题排查

ERROR:root:code for hash md5 was not found.
Traceback (most recent call last):
  File "/usr/local/Cellar/python@2/2.7.16/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 147, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/usr/local/Cellar/python@2/2.7.16/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 97, in __get_builtin_constructor
    raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type md5
ERROR:root:code for hash sha1 was not found.
Traceback (most recent call last):
  File "/usr/local/Cellar/python@2/2.7.16/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 147, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/usr/local/Cellar/python@2/2.7.16/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 97, in __get_builtin_constructor
    raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha1
ERROR:root:code for hash sha224 was not found.
Traceback (most recent call last):
  File "/usr/local/Cellar/python@2/2.7.16/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 147, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/usr/local/Cellar/python@2/2.7.16/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 97, in __get_builtin_constructor
    raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha224
ERROR:root:code for hash sha256 was not found.
Traceback (most recent call last):
  File "/usr/local/Cellar/python@2/2.7.16/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 147, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/usr/local/Cellar/python@2/2.7.16/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 97, in __get_builtin_constructor
    raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha256
ERROR:root:code for hash sha384 was not found.
Traceback (most recent call last):
  File "/usr/local/Cellar/python@2/2.7.16/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 147, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/usr/local/Cellar/python@2/2.7.16/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 97, in __get_builtin_constructor
    raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha384
ERROR:root:code for hash sha512 was not found.
Traceback (most recent call last):
  File "/usr/local/Cellar/python@2/2.7.16/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 147, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/usr/local/Cellar/python@2/2.7.16/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 97, in __get_builtin_constructor
    raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha512
Traceback (most recent call last):
  File "/usr/local/bin/pip", line 11, in <module>
    load_entry_point('pip==19.0.3', 'console_scripts', 'pip')()
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 489, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2793, in load_entry_point
    return ep.load()
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2411, in load
    return self.resolve()
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2417, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/local/lib/python2.7/site-packages/pip/_internal/__init__.py", line 19, in <module>
    from pip._vendor.urllib3.exceptions import DependencyWarning
  File "/usr/local/lib/python2.7/site-packages/pip/_vendor/urllib3/__init__.py", line 8, in <module>
    from .connectionpool import (
  File "/usr/local/lib/python2.7/site-packages/pip/_vendor/urllib3/connectionpool.py", line 29, in <module>
    from .connection import (
  File "/usr/local/lib/python2.7/site-packages/pip/_vendor/urllib3/connection.py", line 38, in <module>
    from .util.ssl_ import (
  File "/usr/local/lib/python2.7/site-packages/pip/_vendor/urllib3/util/__init__.py", line 6, in <module>
    from .ssl_ import (
  File "/usr/local/lib/python2.7/site-packages/pip/_vendor/urllib3/util/ssl_.py", line 8, in <module>
    from hashlib import md5, sha1, sha256
ImportError: cannot import name md5

该问题是在我的MAC升级之后,python环境突然无法使用了,不管安装什么软件,保存如上,解决方案如下:

重装openssl
brew install openssl
查看当前opessl版本,并且切换openssl
➜  videoproject git:(master) ✗ ls /usr/local/Cellar/openssl
1.0.2r
➜  videoproject git:(master) ✗ brew switch openssl 1.0.2r
Cleaning /usr/local/Cellar/openssl/1.0.2r
Opt link created for /usr/local/Cellar/openssl/1.0.2r
用户的提问涉及两个主题:`NULL` 的本质以及 Anaconda 环境Python 缺失的问题。以下是针对这两个部分的详细解答。 ### 关于 `NULL` 在 C 语言中,`NULL` 是一个宏定义,其核心意义是用来表示空指针[^1]。具体来说: - **`NULL` 的本质** 宏定义中的 `(void *)0` 表明 `NULL` 实际上是一个特殊的值,它被解释为内存地址而非普通的整数零[^2]。尽管它的数值形式是 `0` 或者十六进制的 `0x00000000`,但在程序运行时,这通常意味着该指针未指向任何有效的内存位置。 - **跨平台兼容性处理** 不同编译环境下可能有不同的实现方式。例如,在 GCC 下如果直接使用未经适当预处理器条件判断的 `NULL` 可能引发段错误,这是因为某些情况下尝试解引用这样的空指针会触发异常行为。 对于上述提到的情况即GCC下的段错误现象,可以推测可能是由于试图访问由 `NULL` 所代表的非法存储区域所引起。 ### 解决 Anaconda 环境缺乏 Python 当遇到 Anaconda 中缺失 Python 的情况时,可以从以下几个方面着手解决问题: #### 验证安装状态 确认当前使用的命令行工具是否正确配置到 Anaconda 的路径下。可以通过执行如下脚本检测已安装版本号是否存在: ```bash which python ``` 或者更精确地指定 conda 自带的解释器: ```bash ~/anaconda3/bin/python --version ``` 假如返回为空白,则说明环境变量 PATH 设置不当或是根本就没有完成初始部署过程。 #### 更新或重新初始化 Conda Base Environment 有时基础镜像遭到破坏亦或者是用户误操作删除了关键组件文件夹等原因造成此状况发生。此时建议采取措施恢复默认设置: ```bash conda update conda conda install python=3.x # 替换 'x' 成所需的具体次版本编号 source ~/anaconda3/bin/activate base ``` 另外一种方法就是彻底卸载后再重装整个发行包以确保所有依赖项齐全无损。 #### 调试技巧分享 为了进一步排查潜在隐患所在之处,可利用以下调试手段获取更多信息辅助分析原因所在: - 查看日志录寻找报错提示; - 使用虚拟机测试独立副本验证问题重现率; - 对照官方文档核对每一步骤细节差异点;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值