Python XML NameError:未定义全局名称“qn”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python XML NameError:未定义全局名称“qn”相关的知识,希望对你有一定的参考价值。

我正在使用python-docx创建一个脚本(rows = 1,cols = 1)。单元格内的文本需要垂直和水平对齐,背景为灰色。

我使用WD_TABLE_ALIGNMENT水平对齐文本和xml为背景着色。但这是我的问题。我把XML脚本垂直对齐,我有一个错误:“未定义全局名称'qn'。”

这是代码:

from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.table import WD_TABLE_ALIGNMENT
from docx.oxml.ns import nsdecls
from docx import parse_xml, OxmlElement

def create_table():
    table = document.add_table(rows=1, cols=1)
    table.alignment = WD_TABLE_ALIGNMENT.CENTER
    row_cells=table.rows[0].cells
    tc=row_cells[0]._tc
    tcPr=tc.get_or_add_tcPr
    tcVAlign = OxmlElement('w:vAlign')
    tcVAlign.set(qn('w:val'), "center")
    tcPr.append(tcVAlign)

这是导入错误吗?还是脚本错误?

谢谢。

答案

我正在查看docx库,在/docx/oxml/xlmchemy.py中我发现了一行:

from .ns import qn

所以我试着这样做:

from docx.oxml.ns import qn

这是一个ns功能,它的工作原理。

谢谢。

以上是关于Python XML NameError:未定义全局名称“qn”的主要内容,如果未能解决你的问题,请参考以下文章

NameError:名称'python'未定义[关闭]

Python - NameError:名称 itemgetter 未定义

Python 3:NameError:未定义名称“sklearn”

Python / Access NameError:名称''未定义

NameError:未定义全局名称“PermissionError”(python 2.x)

Python NameError:名称未定义