Sure; there are tons of address generators on GitHub
[1].
For instance, bitcoinaddress
[2] which outputs in the following format.
from bitcoinaddress import Wallet
wallet = Wallet()
print(wallet)
Private Key HEX: 03902e4f09664bc177fe4e090dcd9906b432b50f15fb6151984475c1c75c35b6
Private Key WIF: 5HqrbgkWPqBy6dvCE7FoUiMuiCfFPRdtRsyi6NuCM2np8qBZxq5
Private Key WIF compressed: KwLdv6T2jmhQbswnYrcL9KZHerTpVyjozp1JNjfP5QuD3GchCwCc
Public Key: 04c5389a31ce6149c28ba20d14db8540b2319e5a65000a2919fbf7a6296e7840b53f883a9483fb7f2b43f3eacd857c904d1b70ecc168571b64d8f1ab82b57eea88
Public Key compressed: 02c5389a31ce6149c28ba20d14db8540b2319e5a65000a2919fbf7a6296e7840b5
Public Address 1: 1Bu6YxH64nfvhdDsYNEP8PftoBMqgusdPS
Public Address 1 compressed: 18i5PtPisxbGiGGEviW7HPcnfNPmcsscwH
Public Address 3: 38dRrGx5YbrnRWuWcJv5i2XHjYUnHE2wvv
Public Address bc1 P2WPKH: bc1q2jxe5azr6zmhk3258av7ul6cqtu4eu4mps8f4p
Public Address bc1 P2WSH: bc1qdveuf0egtfdnd2fnsp0lzfukn2e58czf8323ky6xt8ydew4ecfcqv3ettx
You can get specific keys and addresses like this.
from bitcoinaddress import Wallet
wallet = Wallet()
>>> print(wallet.key.hex) # outputs private key as hex
392c91ba6d6f56444348110951ff248469bc0ba1823eda332dc5f98eff3fc8d6
>>> print(wallet.address.mainnet.pubaddrbc1_P2WPKH) #outputs P2WPKH address starting with bc1
bc1q3ucghautezsj5928vgvdmy874495xeddzqdfrj
If you only need the x / y coordinates of the public keys, there is some example Ruby code on the Learnmeabitcoin page about public keys [3].
[1]
https://github.com/search?q=bitcoin+address+generator[2]
https://github.com/fortesp/bitcoinaddress[3]
https://learnmeabitcoin.com/technical/public-key