Django e Stripe, Módulo 'stripe' não tem membro 'Cliente'

Sep 18 2020

então estou tentando criar um cliente em stripe usando django, de acordo com a documentação em stripe, o código stripe.Customer.create deve funcionar, mas só aparece esse erro, alguém pode me dizer por que isso está acontecendo?

views.py

from django.shortcuts import render, redirect
from django.urls import reverse
from django.http import JsonResponse

import stripe
# Create your views here.
stripe.api_key = "xxxx"

def index(request):
    return render(request, 'sales/index.html')

def charge(request):
    amount = 5
    if request.method == 'POST':
        print('Data', request.POST)

        stripe.Customer.create(
            email=request.POST['email']
        )

    return redirect(reverse('success', args=[amount]))

def successMsg(request, args):
    amount = args
    return render(request, 'sales/success.html', {'amount':amount})


Traceback

Traceback (most recent call last):
  File "C:\Users\snin2\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "C:\Users\snin2\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\core\handlers\base.py", line 179, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\snin2\Desktop\django braintree\stripe\sales\views.py", line 17, in charge
    stripe.Customer.create(
AttributeError: module 'stripe' has no attribute 'Customer'
[18/Sep/2020 08:36:39] "POST /charge/ HTTP/1.1" 500 66773


Respostas

6 JPG Sep 21 2020 at 09:01

O único motivo para esse erro é que você pode ter um stripe.pyarquivo ou um módulo no diretório do projeto.

e, sim, você tem um pacote nomeado stripeem django braintreediretório.

\django braintree\stripe\sales\views.py

Como podemos verificar isso?

Você pode verificar a localização do módulo inspecionando o .__file__atributo do módulo.

import stripe
print(stripe.__file__)
            ^^^^^^^^^^^

Referências

  1. Python Stripe: o objeto 'módulo' não tem o atributo 'Charge' - (StackOverlofw)
  2. AttributeError: o objeto 'módulo' não tem atributo 'Charge' - (GitHub)