Docker中碰到的坑

"本文介绍了在Docker环境中遇到的两个常见问题及解决方法。一是由于.pyc文件导致的程序运行错误,解决方案是删除所有.pyc文件;二是Docker容器内中文输出乱码,解决方式是在Dockerfile中设置ENV LANG="en_US.utf8"以指定正确的编码。通过这些步骤,可以确保Docker环境的正常运行和中文显示。"

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.docker中运行程序报了以下错误

File "<frozen importlib._bootstrap>", line 961, in _find_and_load
File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 674, in exec_module
File "<frozen importlib._bootstrap_external>", line 779, in get_code
File "<frozen importlib._bootstrap_external>", line 487, in _compile_bytecode
ValueError: bad marshal data (unknown type code)

解决:由先前项目运行时缓存的.pyc文件造成的bug,只要将项目中所有的.pyc文件删除即可。

           删除命令可采用 find ./ -name *.pyc | xargs rm -rf (删除的时候自个小心,最好先看下)

2.Dockerfile创建的镜像中,运行容器的编码方式默认为POSIX,输出中文乱码。

解决:在创建镜像的Dockerfile里添加 ENV LANG="en_US.utf8",具体可以查看基础镜像中还有哪几种编码,并在Dockerfile创建的时候添加设置即可。

查看的命令为 locale -a ,输出结果如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值