无法导入 win32api,但我可以在我的文件中看到它
Can't import win32api while I can see it in my files
总的来说,我对编码还比较陌生,我正在尝试使用 Python 自动发送我在工作中经常发送的特定电子邮件。我找到了一些似乎可以实现我的目标的代码,但我无法让它正确导入 win32api 模块。
我正在使用 PyCharm IDE,我已经成功地使用 pip 安装了 win32。当我在 site-packages\win32 下查看时,我可以清楚地看到那里的 win32api.pyd 文件,以及一堆其他文件。但是当我尝试导入它时,找不到它。
当我写:
from win32 import
我得到的唯一选择是 _win32sysloader
site-packages 文件夹在我的 PYTHONPATH 中,我已经可以用同样的方式导入 openpyxl 模块,但是这个不太配合。
这是我使用的代码:
import win32com.client
import win32
outlook = win32com.client.Dispatch(r"path\to\outlook.exe")
mail = outlook.CreateItem(0)
mail.To = "my@mail.com
mail.Subject = "Test"
mail.Body = "Mail"
mail.Send
最后,我想要完成的是自动将带有特定文本字符串的电子邮件发送到特定地址。但是当我 运行 这段代码时,我得到了错误: ModuleNotFoundError: No module named 'win32api'
如果您对如何完成此操作有任何其他建议,我很乐意听取。
谢谢。
不需要 Win32 模块。
而且你没有正确使用 win32com.client.Dispatch
。
Automation objects are COM objects that expose methods and properties
using the IDispatch interface. So how do we use these objects from
Python? The win32com.client package contains a number of modules to
provide access to automation objects.
To use an IDispatch-based COM object, use the method
win32com.client.Dispatch(). This method takes as its first parameter
the ProgID or CLSID of the object you wish to create. If you read the
documentation for Microsoft Outlook, you'll find the ProgID for
Outlook is outlook.application, so to create an object that interfaces
to Outlook.
你应该这样修改。
经测试有效
import win32com.client
outlook = win32com.client.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = "my@mail.com"
mail.Subject = "Test"
mail.Body = "Mail"
mail.Send()
这将使用您的本地 outlook 帐户。
总的来说,我对编码还比较陌生,我正在尝试使用 Python 自动发送我在工作中经常发送的特定电子邮件。我找到了一些似乎可以实现我的目标的代码,但我无法让它正确导入 win32api 模块。
我正在使用 PyCharm IDE,我已经成功地使用 pip 安装了 win32。当我在 site-packages\win32 下查看时,我可以清楚地看到那里的 win32api.pyd 文件,以及一堆其他文件。但是当我尝试导入它时,找不到它。 当我写:
from win32 import
我得到的唯一选择是 _win32sysloader
site-packages 文件夹在我的 PYTHONPATH 中,我已经可以用同样的方式导入 openpyxl 模块,但是这个不太配合。
这是我使用的代码:
import win32com.client
import win32
outlook = win32com.client.Dispatch(r"path\to\outlook.exe")
mail = outlook.CreateItem(0)
mail.To = "my@mail.com
mail.Subject = "Test"
mail.Body = "Mail"
mail.Send
最后,我想要完成的是自动将带有特定文本字符串的电子邮件发送到特定地址。但是当我 运行 这段代码时,我得到了错误: ModuleNotFoundError: No module named 'win32api' 如果您对如何完成此操作有任何其他建议,我很乐意听取。
谢谢。
不需要 Win32 模块。
而且你没有正确使用 win32com.client.Dispatch
。
Automation objects are COM objects that expose methods and properties using the IDispatch interface. So how do we use these objects from Python? The win32com.client package contains a number of modules to provide access to automation objects.
To use an IDispatch-based COM object, use the method win32com.client.Dispatch(). This method takes as its first parameter the ProgID or CLSID of the object you wish to create. If you read the documentation for Microsoft Outlook, you'll find the ProgID for Outlook is outlook.application, so to create an object that interfaces to Outlook.
你应该这样修改。
经测试有效
import win32com.client
outlook = win32com.client.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = "my@mail.com"
mail.Subject = "Test"
mail.Body = "Mail"
mail.Send()
这将使用您的本地 outlook 帐户。