Why does my BIP32 implementation throw different results than other web implementations? They also disagree with each other tho
This line:

msg=("0" + hex(int.from_bytes(pub_key,"big"))[2:] + str_i(0)).encode() 


is incorrect. You are converting the bytes of the pubkey and index into a hex string which you are then hashing. That is not correct. You are supposed to hash the bytes directly, not the hex string.