Erro em python

51 views
Skip to first unread message

Andre

unread,
Apr 30, 2024, 4:03:14 PMApr 30
to Python Brasil
Bom dia.

Estou com um problema em um mini curso de Peyton que estou fazendo e apareceu um erro que não sei corrigir, se alguém souber eu agradeço.
Aqui vai o código e o erro que aparece quando executo no terminal:
# Instalação (pip install pandas & pip install openpyxl, pip install pywin32)
import pandas as pd
import win32com.client as win32
# Importar a base de dados
tabela_vendas = pd.read_excel('E:\Bibliotecas\Downloads\Vendas\Vendas.xlsx')

# Visualozar a base de dados
pd.set_option('display.max_columns', None)
print(tabela_vendas)
print('-' * 50)
# Faturamento por loja

faturamento = tabela_vendas[['ID Loja', 'Valor Final']].groupby('ID Loja').sum()
print(faturamento)
print('-' * 50)
# Quantidade de produto vendido por loja

quantidade = tabela_vendas[['ID Loja', 'Quantidade']].groupby('ID Loja').sum()
print(quantidade)
print('-' * 50)
# Ticket médio por produto cada loja
ticket_medio = (faturamento['Valor Final'] / quantidade['Quantidade']).to_frame()
print(ticket_medio)

# Enviar um email com relatório

outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.Subject = 'Relatório de Vendas por Loja'
#ail.Body = 'Message body'
mail.HTMLBody = '''
Prezados

Segue o Relatório de Vendas por cada Loja.

Faturamento:
{}

Quantidade Vendida:
{}

Ticket Médio dos Produtos em cada Loja:
{}

Qualquer dúvida estou à disposição.

Att.,
André
'''



# To attach a file to the email (optional):
attachment  = "Path to the attachment"
mail.Attachments.Add(attachment)

mail.Send()

---------------------------------------------------------------------------------------------------------------------------------------------
EROO NO TERMINAL:

Traceback (most recent call last):
  File "C:\Users\AQ\MinicursoPython\pythonProject\.venv\Lib\site-packages\win32com\client\dynamic.py", line 84, in _GetGoodDispatch
    IDispatch = pythoncom.connect(IDispatch)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pywintypes.com_error: (-2147221005, 'Cadeia de caracteres de classe inválida', None, None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\AQ\MinicursoPython\pythonProject\MeuArquivo.py", line 27, in <module>
    outlook = win32.Dispatch('outlook.application')
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\AQ\MinicursoPython\pythonProject\.venv\Lib\site-packages\win32com\client\__init__.py", line 118, in Dispatch
    dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch, userName, clsctx)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\AQ\MinicursoPython\pythonProject\.venv\Lib\site-packages\win32com\client\dynamic.py", line 104, in _GetGoodDispatchAndUserName
    return (_GetGoodDispatch(IDispatch, clsctx), userName)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\AQ\MinicursoPython\pythonProject\.venv\Lib\site-packages\win32com\client\dynamic.py", line 86, in _GetGoodDispatch
    IDispatch = pythoncom.CoCreateInstance(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^
pywintypes.com_error: (-2147221005, 'Cadeia de caracteres de classe inválida', None, None)

Process finished with exit code 1

Att...
Andre

Lucas Brahm

unread,
Apr 30, 2024, 6:34:45 PMApr 30
to python...@googlegroups.com
O programa utiliza o Outlook para enviar o email. O Outlook está instalado na máquina que está executando o programa?

--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para acessar essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/d083e253-180a-4832-a181-0d3acbd12d5bn%40googlegroups.com.

Andre

unread,
May 1, 2024, 8:40:49 AMMay 1
to Python Brasil
Sim, está instalado

Renato Moraes

unread,
May 14, 2024, 1:46:12 PMMay 14
to Python Brasil
Tu estás utilizando uma f-string na variável mail.HMLBody?
Se sim é muito provável esse ser teu erro, falta colocar o f no início da entrada da string, dessa forma você consegue citar as variáveis dentro da f-string junto de {}:

mail.HTMLBody = f'''

Prezados

Segue o Relatório de Vendas por cada Loja.

Faturamento:
{variavelA}

Quantidade Vendida:
{variavelB}


Ticket Médio dos Produtos em cada Loja:
{variavelC}


Qualquer dúvida estou à disposição.

Att.,
André
'''
Reply all
Reply to author
Forward
0 new messages