0

これが私のコードです:

   #!/usr/bin/python

    import subprocess

    asciidoc_file_name = '/tmp/redoc_2013-06-25_12:52:19.txt'
    asciidoc_call = ["asciidoc","-b docbook45",asciidoc_file_name]
    print asciidoc_call
    subprocess.call(asciidoc_call)

出力は次のとおりです。

    labamba@lambada:~$ ./debug.py
    ['asciidoc', '-b docbook45', '/tmp/redoc_2013-06-25_12:52:19.txt']
    asciidoc: FAILED: missing backend conf file:  docbook45.conf
    labamba@lambada:~$ asciidoc -b docbook45 /tmp/redoc_2013-06-25_12\:52\:19.txt
    labamba@lambada:~$ file /tmp/redoc_2013-06-25_12\:52\:19.xml
    /tmp/redoc_2013-06-25_12:52:19.xml: XML document text
    labamba@lambada:~$ file /etc/asciidoc/docbook45.conf
    /etc/asciidoc/docbook45.conf: HTML document, ASCII text, with very long lines

Python サブプロセス経由で呼び出されると、asciidoc構成ファイルが見つからないというエラーが表示されます。コマンドラインで呼び出すと、すべて問題なく、構成ファイルがそこにあります。誰でもこれを理解できますか?道に迷いました。

4

2 に答える 2

2

質問は古いです... とにかく、 はasciidocPython で実装されておりasciidocapi.py、Python プログラムからモジュールとして使用できる も含まれています。モジュール docstring は次のように述べています。

asciidocapi - AsciiDoc API wrapper class.

The AsciiDocAPI class provides an API for executing asciidoc. Minimal example
compiles `mydoc.txt` to `mydoc.html`:

  import asciidocapi
  asciidoc = asciidocapi.AsciiDocAPI()
  asciidoc.execute('mydoc.txt')

- Full documentation in asciidocapi.txt.
- See the doctests below for more examples.

簡単にするために、AsciiDocAPI初期化時にスクリプトを検索し、asciidocバックグラウンドでモジュールとしてインポートするクラスを実装します。このようにして、Python でより自然に使用でき、subprocess.call().

于 2015-09-14T13:54:06.477 に答える