python-bitcoinlib | Create Private Keys, Public Keys and Addresses - How to Do It?
Sorry I am not familiar with python-bitcoinlib but if your goal is to just create keys/addresses you can use this library (disclosure: I wrote it) the following way:


  Generating a private key


private = PrivateKey.random() 

or private = PrivateKey.from_hex('yourhexkeyhere') 

or private = PrivateKey.from_wif('yourwifhere')

and then to get the hex representation use private.hex() of private.wif()


  Creating a public key


public = private.to_public()
public.hex()
'044cc549c65f4b0b7713d7a763a01221f85fd34602ac8ff0386995349c55de7111d16b5...'
public.hex(compressed=True)
'034cc549c65f4b0b7713d7a763a01221f85fd34602ac8ff0386995349c55de7111'



  Creating an address from the public key


public.to_address('P2PKH')
'16B2Ghyu5C1CofKfXF2Zi9JycqaAyaE8cd'
public.to_address('P2WPKH')
'bc1qtqshpjw8kr7jlk27gcvj7pvzt8lp6vn5dc2f24'


If you use this library please use it only as a learning tool and not to send real coins as there might still be some bugs.