python bad magic number_bt面板升级Python导致 RuntimeError: Bad magic number in .pyc file

最近服务器受到攻击,尝试安装Cowrie,把Python给升级了,当时只知道把yum的依赖改为了Python2.6,没有注意到bt面板,宝塔面板的问题,今天登录的时候提示登录成功了,结果转眼又不能访问了,根据经验就是服务挂了,但是基于bt面板,宝塔面板创建的网站都没有问题。rGw编程技术_踩坑日志_进阶指南_无知人生

rGw编程技术_踩坑日志_进阶指南_无知人生

bt面板升级Python导致 RuntimeError: Bad magic number in .pyc filerGw编程技术_踩坑日志_进阶指南_无知人生

考虑到是把Python给升级了导致的问题,但是不知道怎么处理,于是找度娘;rGw编程技术_踩坑日志_进阶指南_无知人生

查看bt面板是否全网监听rGw编程技术_踩坑日志_进阶指南_无知人生netstat -ntulp|grep 8888

结果没有,可以肯定是服务挂了。rGw编程技术_踩坑日志_进阶指南_无知人生

执行命令 bt,可以看到所在的位置和帮助rGw编程技术_踩坑日志_进阶指南_无知人生# bt

Usage: /etc/init.d/bt {start|stop|restart|reload|default}

尝试停止和启动,就会看到上面说的错误了

rGw编程技术_踩坑日志_进阶指南_无知人生# bt start

Starting Bt-Panel...   File "main.py", line 32

except Exception,ex:

^

SyntaxError: invalid syntax

failed

------------------------------------------------------

RuntimeError: Bad magic number in .pyc file

------------------------------------------------------

Error: BT-Panel service startup failed.

宝塔官方论坛中有人遇到这个问题,有人给出了下面的解决方案:rGw编程技术_踩坑日志_进阶指南_无知人生

rGw编程技术_踩坑日志_进阶指南_无知人生

于是编辑“/etc/init.d/bt”文件,只改了两处:

rGw编程技术_踩坑日志_进阶指南_无知人生

rGw编程技术_踩坑日志_进阶指南_无知人生

然后保存执行 bt start,还是有错误。rGw编程技术_踩坑日志_进阶指南_无知人生

rGw编程技术_踩坑日志_进阶指南_无知人生

但是看到以下命令比较熟悉,执行以下命令,问题解决了:rGw编程技术_踩坑日志_进阶指南_无知人生nohup python main.pyc `cat data/port.pl` >> /tmp/panelBoot.pl 2>&1 &

rGw编程技术_踩坑日志_进阶指南_无知人生

如果你不是bt面板的问题,参考:rGw编程技术_踩坑日志_进阶指南_无知人生

If you only have the .pyc files (and not the .py files), the best solution is to install a version of python 2.5 on your system and run the installer with this version of python. You can have several versions of python on the same system (I currently use 2.5, 2.6 and 3.1).rGw编程技术_踩坑日志_进阶指南_无知人生

rGw编程技术_踩坑日志_进阶指南_无知人生

本文由 微wx笑 创作,采用 CC BY-NC 4.0 许可协议。 非商业性使用可自由转载、引用、甚至修改,但需署名作者且注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误是由于Python解释器在尝试加载一个已编译的Python文件(.pyc文件)时发现了一个错误的魔数(magic number)。魔数是一个特殊的标识符,用于标识文件类型和版本。如果魔数不正确,Python解释器将无法正确加载文件并引发此错误。解决方法是删除错误的.pyc文件并重新运行程序,或者重新编译正确的.pyc文件。 ### 回答2: 在Python程序运行时,我经常会遇到runtimeerror: bad magic number in .pyc file这个错误。这个错误通常是由Python解释器在尝试加载.pycPython编译后的字节码)文件时发生的。这个错误经常出现在Python2和Python3之间转换或者不同版本之间转换导致的。 “Bad magic number”是一个二进制数值,它标识了一个.pyc文件的版本和类型。在Python编译成.pyc文件时,编译器会附加一个版本和类型标识,确保运行时可以正确加载和解释这个文件。当解释器在运行时发现一个“bad magic number”时,就意味着这个文件的版本或类型不匹配,无法正确加载,于是就会提示runtimeerror: bad magic number in .pyc file,停止程序执行。 为了解决这个问题,有几种可能的解决方案: 1. 删除.pyc文件:您可以手动删除.pyc文件,然后重新运行Python程序。这将导致Python重新编译并生成一个新的.pyc文件。 2. 重新编译Python程序:如果您有Python源代码,您可以尝试重新编译Python程序,这可能会生成新的.pyc文件。 3. 检查Python版本:确保您运行的Python版本与程序编译时使用的Python版本兼容。 4. 尝试重新安装Python:如果以上方法都无法解决问题,您可以尝试重新安装Python并更新所有相关模块。 总之,runtimeerror: bad magic number in .pyc filePython程序运行时常见的错误之一,通常是由版本或类型不匹配导致的。不存在一种通用的解决方案,解决这个错误需要具体问题具体分析。 ### 回答3: runtimeerror: bad magic number in .pyc file一般是由于Python编译后的.pyc文件与Python版本不兼容导致的错误。当Python解释器加载.pyc文件时,会先检查其中存储的magic number是否与当前Python版本兼容,如果不匹配则会抛出该错误。 解决这个问题的方法取决于具体情况。如果是由于Python版本升级导致的问题,可以考虑重新编译源码文件(.py文件),生成新的.pyc文件。如果是由于Python版本降级导致的问题,可以尝试使用旧版本Python编译源码文件。 此外,还有一些其他原因可能导致该错误,例如文件损坏或破坏。在这种情况下,可以尝试重新生成或复制.pyc文件,或者直接删除.pyc文件以重新生成它。 最好的方法是避免这种错误的发生。一种可靠的方法是使用虚拟环境来隔离Python版本和安装的库,以便在不同的项目中使用不同的Python版本和库。通过这种方式,可以避免在不同项目间因Python版本不匹配导致的错误发生。同时,在写代码时也要考虑兼容性问题,尽可能地避免使用过时的Python特性和库,以便在不同的Python版本下都能正常运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值