‘import sitecustomize‘ failed; use -v for traceback 报错

在新升级完成pycharm 2024后,运行python2 的程序,一直有一个提示,执行任何程序都有下面这个错误提示;

'import sitecustomize' failed; use -v for traceback

于是网上找各种方法,什么防火墙配置,什么杀毒软件问题,什么修改 sitecustomize.py 文件内容的,在本地搜索有好几个文件,都不确定是哪个。

最后,自己找到了原因,先同步结论,下面看详细步骤。

在conda 创建的虚拟环境里面,有个文件:envname/lib/python2.7/site.py,里面有个except提示导致的;

所以,如果不想要提示,直接把else 后面部分删除掉,保存就好了。 


下面整理下过程,给自己留个记录,有兴趣的往下看看。

1、首先,在升级完pycharm 2024后,原来的虚拟环境执行总是抛语法异常,看着是不兼容python3的语法导致的,我也没细想,以为是当前的虚拟环境不兼容了;

Traceback (most recent call last):
  File "/Users/admin/pyenv/nlp/lib/python2.7/site.py", line 703, in <module>
    main()
  File "/Users/admin/pyenv/nlp/lib/python2.7/site.py", line 694, in main
    execsitecustomize()
  File "/Users/admin/pyenv/nlp/lib/python2.7/site.py", line 548, in execsitecustomize
    import sitecustomize
  File "/Applications/PyCharm.app/Contents/plugins/python-ce/helpers/pycharm_plotly_backend/sitecustomize.py", line 29
    def __init__(self, html_string: str, image_string: str):
                                  ^
SyntaxError: invalid syntax

2、然后我就用conda 又重新创建了一个虚拟环境,这个异常就不抛了,更加验证了我第一步的想法,可能是虚拟环境“坏了”。

但是,虽然没有异常阻塞了,但是有一个新的错误提示,每次执行都显示,看着怪讨厌的。

3、于是,为了找到这个错误提示位置,就找到了 conda 创建的虚拟环境的 site.py ,里面有  import usercustomize 的步骤,但是报错了,所以会有提示。如果不想要直接把else部分注释掉就可以。 

4、但是还想细看,为啥  import sitecustomize 会报错呢?就把错误堆栈打印了一下,还是因为里面是 python 3的语法,python2 不兼容。 

在print 下一行,打印一下堆栈

import traceback
traceback.print_exc()

5、那到这里,是conda创建的虚拟环境提示多余了么? 又看了下我原来用virtualenv 创建的虚拟环境,发现也是一样的错误,import sitecustomize 的是有遇到python3的语法不兼容。

然后又打开我原来的虚拟环境的 site.py 的内容看了下:

只拦截了ImportError错误,对于SyntaxError 语法错误,直接就抛出来了,导致运行报错。

6、那就好办了,我直接拦截所有异常就好了。然后我原来的虚拟环境又可以继续使用了,皆大欢喜。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值