无法导入Python标准库模块:ValueError源码含空字节
问题解决办法
问题根源
你的项目目录C:\Users\Karenin\Documents\IStudy中存在一个名为collections.py的文件,Python导入模块时会优先查找当前脚本所在目录,因此它会加载你自定义的这个文件而非标准库的collections模块。而这个自定义文件包含空字节或编码异常,导致出现ValueError: source code string cannot contain null bytes和Pylint的编码错误提示。
具体解决步骤
- 定位到
C:\Users\Karenin\Documents\IStudy目录,找到collections.py文件,将其删除或重命名(比如改为my_collections.py),同时如果存在对应的collections.pyc编译文件,也要一并删除。 - 重新运行你的
bt.py脚本,此时Python会正确加载标准库的collections模块,导入操作即可正常执行。 - 后续编写自定义脚本时,避免使用Python标准库的模块名(如
re.py、math.py等),防止再次出现模块名冲突问题。
补充说明
Python REPL中能正常执行导入,是因为REPL的当前工作目录并非你的项目目录,不会加载到你自定义的collections.py文件,因此不会触发冲突。
内容的提问来源于stack exchange,提问作者ymelnykov
相关产品推荐
相关产品推荐

