I haven't heard of a package that does what you need. I will try to help you as much as possible.
I use django-registration to handle user registration. It provides a form named RegistrationFormUniqueEmail, this form, as its name suggests, will ensure that the email used is unique.
For login: implement an authentication backend that makes sure that the password and email match. It should look something like this:
# Overwrite the default backend to check for e-mail address
class EmailBackend(ModelBackend):
def authenticate(self, username=None, password=None):
#If username is an email address, then try to pull it up
try:
user = User.objects.get(email__iexact=username)
except User.DoesNotExist:
return None
if user.check_password(password):
return user
Let me know if you have any questions.