First you disable your network card’s automatic checksumming:

sudo ethtool -K eth1 tx off

Then send your packet, using a SOCK_RAW socket:

#!/usr/bin/env python
from socket import socket, AF_PACKET, SOCK_RAW
s = socket(AF_PACKET, SOCK_RAW)
s.bind(("eth1", 0))

# We're putting together an ethernet frame here, 
# but you could have anything you want instead
# Have a look at the 'struct' module for more 
# flexible packing/unpacking of binary data
# and 'binascii' for 32 bit CRC
src_addr = "\\x01\\x02\\x03\\x04\\x05\\x06"
dst_addr = "\\x01\\x02\\x03\\x04\\x05\\x06"
payload = ("["*30)+"PAYLOAD"+("]"*30)
checksum = "\\x1a\\x2b\\x3c\\x4d"
ethertype = "\\x08\\x01"

s.send(dst_addr+src_addr+ethertype+payload+checksum)