Pra*_*yar 2 python windows apache django
我有一个应用程序,我想在其中将 .doc 转换为 .docx。之后处理 .docx 文件以进行数据挖掘。最终用户使用 Web 界面访问此服务。Web 应用程序是在 Django 1.6 中开发的。
要将 .doc 转换为 .docx,我们需要安装了 MS Office 的 Windows 平台。话虽如此,我有一个 AWS Windows Server 2012 R2 实例(它是 Windows 64 位)正在运行。我将 Apache(64 位)与 mod_wsgi 和 Python 2.7.8(64 位)一起使用。
现在,这是我将 .doc 转换为 .docx 的代码
import tempfile, sys
import comtypes, comtypes.client
def convert(source):
tmpfile = tempfile.NamedTemporaryFile(delete=False)
tmpname = tmpfile.name + ".docx"
tmpfile.close()
os.unlink(tmpfile.name)
try:
comtypes.CoInitialize();
wordapp = comtypes.client.CreateObject('Word.Application')
doc = wordapp.Documents.Open(source, ReadOnly=True)
doc.SaveAs(tmpname, FileFormat=16)
doc.Close()
wordapp.Quit()
except:
print sys.exc_info()
if os.path.exists(tmpname):
return tmpname
else:
return None
Run Code Online (Sandbox Code Playgroud)
我得到的错误是
(<type 'exceptions.ValueError'>, ValueError('NULL COM pointer access',), <traceback object at 0x00000085CE65AC08>)
Run Code Online (Sandbox Code Playgroud)
在线的
doc = wordapp.Documents.Open(source, ReadOnly=True)
Run Code Online (Sandbox Code Playgroud)
但有趣的是,这个错误只在我使用 Web 界面时发生。也就是说,如果我通过 Apache 并调用此代码。
我试图直接从命令行运行此代码作为脚本,它工作得很好。
当转换作为 Django 视图的一部分发生时,我收到此错误。
提前致谢。
问候,
普拉塔梅什
小智 5
如果您仍然遇到此问题,这有助于我实现与 AWS(Win2012)-Apache(64bit)-Django 完全相同的布局:
更改 DCOM 配置设置:
| 归档时间: |
|
| 查看次数: |
1494 次 |
| 最近记录: |