您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

带有python 3.8的Msys2:ImportError:无法从'io'导入名称'open_code'

带有python 3.8的Msys2:ImportError:无法从'io'导入名称'open_code'

产生ImportError: cannot import name 'open_code' from 'io' (unkNown location)于以下事实:有两个不同版本的Python相互冲突。python仍指向旧版本3.7,但PYTHONPATH已更新为指向新3.8版本。由于文档PYTHONPATH状态,它成为 预先考虑 到模块搜索路径,因此阴影任何内建模块:

搜索路径取决于安装,但通常以prefix/lib/pythonversion(请参见PYTHONHOME上文)开头。它总是 附加PYTHONPATH

您可以通过创建两个不同的虚拟环境来重现该行为,然后在PYTHONPATH指向另一个的同时启动一个虚拟环境。在下文中我用Miniconda创建两个不同的环境中,py37并且py38,分别含有3.7和3.8安装。

(py37) user@pc:~$ python --version
Python 3.7.6
(py37) user@pc:~$ PYTHONPATH=~/miniconda3/envs/py38/lib/python3.8/ python
Fatal Python error: init_sys_streams: can't initialize sys standard streams
Traceback (most recent call last):
  File "/home/user/miniconda3/envs/py38/lib/python3.8/io.py", line 54, in <module>
ImportError: cannot import name 'open_code' from 'io' (unkNown location)
Aborted (core dumped)
python 2022/1/1 18:27:20 有187人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶