After forking mainnet with Ganache-cli and impersonating account I don't own, I find a problem in web3.py.
I don't have the private key to sign the transaction.
tx_signed = w3.eth.account.signTransaction(tx_build, private_key)
However, when it comes to Etherjs and Hardhat, I don't have the issue. I have the impersonated public address and it's enough to get the transaction done, under the forking environment.
I can develop in JS and Python, but Python is preferred as it's of high efficiency.
Appreciate any help!