Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用docutils.core.publish_字符串而不是publish_cmdline,`settings_overrides`包含HTML特定选项的参数无效!_Python_Html_Restructuredtext_Docutils - Fatal编程技术网

Python 使用docutils.core.publish_字符串而不是publish_cmdline,`settings_overrides`包含HTML特定选项的参数无效!

Python 使用docutils.core.publish_字符串而不是publish_cmdline,`settings_overrides`包含HTML特定选项的参数无效!,python,html,restructuredtext,docutils,Python,Html,Restructuredtext,Docutils,下面是我的代码 from docutils.core import publish_string from docutils.writers.html4css1 import Writer as HisWriter args = { 'stylesheet' : '/home/wonder/lab/css/note.css', 'stylesheet-path' : None, } src = 'ccav' print publish_string(src, writer=H

下面是我的代码

from docutils.core import publish_string
from docutils.writers.html4css1 import Writer as HisWriter

args = {
    'stylesheet' : '/home/wonder/lab/css/note.css',
    'stylesheet-path' : None,
}

src = 'ccav'
print publish_string(src, writer=HisWriter(), settings_overrides=args)
我得到了以下错误:

AssertionError: stylesheet and stylesheet_path are mutually exclusive.
因此,我将
args
更改为:

args = {
    'stylesheet-path' : '/home/wonder/lab/css/note.css',
    'stylesheet' : None,
}
现在,没有错误了。但是,插入HTML输出的样式表不是
/home/wonder/lab/css/note.css
的内容。它仍然是
/usr/local/lib/python2.7/dist-packages/docutils/writers/html4css1/html4css1.css

也就是说,与使用publish\u cmdline时在命令行中指定选项不同,使用publish\u字符串时,携带HTML特定选项的
settings\u overrides
参数无效

from docutils.core import publish_string
from docutils.writers.html4css1 import Writer as HisWriter

src = 'ccav'
args = {
    'stylesheet_path' : '/path/to/your/stylesheet'

}
print publish_string(src, writer=HisWriter(), settings=None, settings_overrides=args)
您需要执行
settings=None
并使用
stylesheet\u path
而不是
stylesheet
,以使其忽略内置的样式表


编辑:注意,我在distutils附带的一个示例脚本的源代码中找到了这个答案,因此即使
settings=None
看起来很糟糕,它似乎不是。

当您设置
'stylesheet':'/home/wonder/lab/css/note.css'
并同时设置“'stylesheet-path':'。/”或类似的东西时会发生什么呢?谢谢您的建议!我已经尝试过了。let
args={'stylesheet-path':'/home/wonder/lab/css/note.css'、'stylesheet':'。/'、}
args={'stylesheet':'/home/wonder/lab/css/note.css','stylesheet-path':'。/',}
。但在这两种情况下,我总是得到与以前相同的结果:
断言错误:样式表和样式表路径是互斥的。
我找到了publish\u string的一个示例用法。但它根本没有使用HTML规范选项。看看我的答案,它对我有效。还记得通过单击下一步的复选标记来接受答案如果它解决了你的问题,我将向它致谢。非常感谢!你的代码已经解决了我的问题。它正如我所期望的那样工作。但即使你也没有抓住要点!
settings=None
是不必要的。你没有看到你粘贴的代码中的符号
stylesheet\u path
,它是
stylesheet\u path
而不是
stylesheet path
!哇,我一点也没注意到。复制粘贴拯救!我不得不抱怨这是一个多么糟糕的设计,它怎么能在settings_spec和cmd行中使用
样式表路径
,但在这种情况下使用不同的
样式表路径
!这浪费了我很多时间!而且我在中找不到任何关于它的东西,这真的是关于世界的我见过的t文档。只需阅读源代码就容易多了。谢谢!你能给我你参考的源代码的链接吗?