python调用win32com.client时提示:No module named win32com.client

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python调用win32com.client时提示:No module named win32com.client相关的知识,希望对你有一定的参考价值。

本人是python菜鸟,根本没学过,因为要用到所以搜索了段代码,链接如下:
http://hi.baidu.com/%C0%E1%B9%FD%CE%DE%BA%DBno1/blog/item/b11e5b186e3143a94aedbc15.html
代码如下:
from win32com.client import Dispatch
import win32com.client

class easyExcel:
"""A utility to make it easier to get at Excel. Remembering
to save the data is your problem, as is error handling.
Operates on one workbook at a time."""

def __init__(self, filename=None):
self.xlApp = win32com.client.Dispatch('Excel.Application')
if filename:
self.filename = filename
self.xlBook = self.xlApp.Workbooks.Open(filename)
else:
self.xlBook = self.xlApp.Workbooks.Add()
self.filename = ''

def save(self, newfilename=None):
if newfilename:
self.filename = newfilename
self.xlBook.SaveAs(newfilename)
else:
self.xlBook.Save()

def close(self):
self.xlBook.Close(SaveChanges=0)
del self.xlApp

def GetExcelLineCount(self):
count = 0
sht = self.xlBook.Worksheets('第一轮')
while True:
if sht.Cells(count + 1, 1).Value == None:
break
count += 1
return count
def getCell(self, sheet, row, col):
"Get value of one cell"
sht = self.xlBook.Worksheets(sheet)
return sht.Cells(row, col).Value

def setCell(self, sheet, row, col, value):
"set value of one cell"
sht = self.xlBook.Worksheets(sheet)
sht.Cells(row, col).Value = value

def getRange(self, sheet, row1, col1, row2, col2):
"return a 2d array (i.e. tuple of tuples)"
sht = self.xlBook.Worksheets(sheet)
return sht.Range(sht.Cells(row1, col1), sht.Cells(row2, col2)).Value

if __name__ == "__main__":
xls = easyExcel('E:/pythonWorkspace/test.xls')
lineNum = xls.GetExcelLineCount()
for i in range(1,lineNum + 1):
for j in range(1,8):
print ,xls.getCell('第一轮', i, j)
xls.save()
xls.close()
运行时,提示:from win32com.client import Dispatch
ImportError: No module named win32com.client
环境:Win7 专业版
python 3.2.2+IDEL
我知道是缺少win32com.client,我想得到的是如何才能成功加载win32com.client
安装pywin32-216.1.win32-py3.2.exe 之后,原来的问题解决,但是出现新的问题:
File xxx, line 1, in <module>
from win32com.client import Dispatch
File "D:\Program Files\Python32\lib\site-packages\win32com\__init__.py", line 5, in <module>
import win32api, sys, os
ImportError: No module named win32api

参考技术A 你没安装那个win32com的插件吧,出来excel可以用xlrd和xlwt不错追问

安装pywin32-216.1.win32-py3.2.exe,还要安装别的吗?
我看一下xlrd和xlwt,是不是更方便点。
其实我就想读Excel表,连写都不用

追答

其实方便程度差不多,个人爱好,推荐用xlrd

参考技术B win32api 在
\lib\site-packages\win32\win32api.pyd

目录下,你看下文件在不在再说吧
参考技术C http://sourceforge.net/projects/pywin32/
安装他追问

安装的就是它

追答

看了看你的代码应该是用了那个easyExcel吧,
把前面修改成
import win32com.client
from win32com.client import constants
试试,我也用的这个。

或者启动一个python命令行
然后在里面输入
import win32com.client

看看是否出错。

追问

第一种修改方法,提示为:Python32\lib\site-packages\win32com\__init__.py", line 5, in
import win32api, sys, os
ImportError: DLL load failed: 找不到指定的模块

第二种方法的提示跟第一种的方法相同

追答

预计你的安装已经失败了。在pytthon命令行提示找不到指定模块是典型安装失败。
请重新安装,这次安装的过程最好能一路下一步,注意这个程序所找到的python安装目录是否正确。

参考技术D 安装pywin32就有win32api,
Python32\lib\site-packages\win32\win32api.pyd
第5个回答  2011-11-30 操作excel的话 可以用pyExcelerator这个第三方包 读写excel都很简单 我一直都用这个本回答被提问者采纳

如何让python调用C和C++代码

二、Python调用C/C++1、Python调用C动态链接库Python调用C库比较简单,不经过任何封装打包成so,再使用python的ctypes调用即可。(1)C语言文件:pycall.c[html]viewplaincopy/***gcc-olibpycall.so-shared-fPICpycall.c*/#include#includeintfoo(inta,intb)printf("youinput%dand%d\n",a,b);returna+b;(2)gcc编译生成动态库libpycall.so:gcc-olibpycall.so-shared-fPICpycall.c。使用g++编译生成C动态库的代码中的函数或者方法时,需要使用extern"C"来进行编译。(3)Python调用动态库的文件:pycall.py[html]viewplaincopyimportctypesll=ctypes.cdll.LoadLibrarylib=ll("./libpycall.so")lib.foo(1,3)print'***finish***'(4)运行结果:2、Python调用C++(类)动态链接库需要extern"C"来辅助,也就是说还是只能调用C函数,不能直接调用方法,但是能解析C++方法。不是用extern"C",构建后的动态链接库没有这些函数的符号表。(1)C++类文件:pycallclass.cpp[html]viewplaincopy#includeusingnamespacestd;classTestLibpublic:voiddisplay();voiddisplay(inta);;voidTestLib::display()cout#include#includeintfac(intn)if(n<2)return(1);/*0!==1!==1*/return(n)*fac(n-1);/*n!==n*(n-1)!*/char*reverse(char*s)registerchart,/*tmp*/*p=s,/*fwd*/*q=(s+(strlen(s)-1));/*bwd*/while(p 参考技术A 出门左转搜索引擎,有个东西叫 ctypes

以上是关于python调用win32com.client时提示:No module named win32com.client的主要内容,如果未能解决你的问题,请参考以下文章

使用 win32com.client 模块在 Python 中将 .XLSX 转换为 .XLS

在 Python 中使用 win32com.client 文本到语音/语音识别

win32client dispatch在python中失败,而win32 :: ole new在perl中成功运行for com dll

Python 导出报告 Microsoft Access 使用 win32com.client

python win32gui模块下载

python可以直接调用win32的api吗