web-dev-qa-db-ja.com

SphinxにPython 3.xインタープリターを使用させる方法

Python 3.xで書かれたプロジェクトのドキュメントを作成しようとしています。 Sphinx私が使いたいツールであり、 公式サイト によると、その最後のバージョン1.1.2は互換性があります Python 3.1 + を使用します。私のOSはArchlinuxです。これは、デフォルトのPythonパッケージとしてPython 3.2+を使用するLinuxディストリビューションです。

インストールと構成は簡単で(easy_install -U Sphinx、次にsphinx-quickinstall)、2.xまたは3.x Pythonインタープリターのどちらかを選択するように求められることはありませんでした。しかし、Sphinxにプロジェクトのドキュメントを作成するように依頼すると、コードはPython 2.x用に作成したかのように分析されます。

SphinxはPython 3.xの準備ができていますか?間違えましたか?

18
suizokukan

昨夜、あなたの質問に出くわしたとき、私はこれとまったく同じ問題を抱えていました。 —私もArchを使用しています。

問題はさまざまなものである可能性があると思いますが、私にとっての解決策は、Python 2バージョンの_python-distribute_パッケージがインストールされていたため、_easy_install-2.7_ではありません_easy_install-3.2_。

私の場合、以前にpacmanからSphinxをインストールしようとしたために間違ったバージョンの_python-distribute_がインストールされたと思います(バージョン1.0.8をインストールします)。そのため、Sphinxとその後の不要な依存関係をすべてアンインストールしてから_pacman -Rsu python-sphinx_ _python-distribute_は正しいバージョンの_easy_install_を取得し、_easy_install_を使用してSphinxを再インストールすると、Sphinxのインストールは期待どおりに機能します。

_python-distribute_に依存する他のものがある場合、プロセスは少し異なる場合があります。ただし、_python-distribute_を削除して、そこから作業することから始めます。

その最後の部分をスクラップします。早朝で、真っ直ぐ考えていませんでした! _python2-distribute_と_python-distribute_は、共存できると私が信じている別々のパッケージです。したがって、これが問題である場合は、_python-distribute_( "2"ではない)があることを確認し、インストールしていない場合は、_easy_install-3.2_を使用してSphinxをインストールしてください。

これがお役に立てば幸いです。

6
tjm

インストール:pipforpython3pip3そのように)。

    pip3 install -U sphinx

Building:Makefile(linux/Mac)の変更。

    SPHINXBUILD   = python -msphinx

上記のMakefileの行で、pythonpython3(またはpython3.x)に変更します。

   SPHINXBUILD   = python3 -msphinx

デフォルトの場合pythonは2.xバージョンのpythonを指しています。

13
pavan

Ubuntuでは、python3-sphinxは別のパッケージです。私の場合、python3-sphinxをインストールする必要がありました。

Sudo apt-get install python3-sphinx

おそらく両方をマシンで実行できますが、古いマシンを削除しました。

Sudo apt-get remove python-sphinx

私の古いmakefileは、この後、私のPython 3コードで問題なく動作しました。

7
jtpereyda

私はUbunutにいて、同じ問題を抱えていました。 Josh_PまたはNicolasの答えは使用しません。

  • PYTHONパスを変更したくありません。
  • 古いプロジェクトで必要なので、python-sphinxをアンインストールしたくありません。

だから私はsphinx3-buildと呼ばれるこの小さなスクリプトでそれを修正しました:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""
Same as /usr/bin/sphinx-build but with different
interpreter
"""

import sys

if __name__ == '__main__':
    from sphinx import main, make_main
    if sys.argv[1:2] == ['-M']:
        sys.exit(make_main(sys.argv))
    else:
        sys.exit(main(sys.argv))

これはsphinx-buildと同じですが、インタープリターが異なります。 Makefileで、次の行を変更しました。

SPHINXBUILD   = sphinx3-build

次に、ファイルを/usr/bin/フォルダーにコピーします。

Sudo cp sphinx3-build /usr/bin/

これは私のために働いた。スクリプトをMakefileと同じフォルダーに配置し、SPHINXBUILD./sphinx3-buildに設定するだけで、1つのプロジェクトに対してローカルで使用することもできます。

6
c0ff3m4kr

答えを探してみたら、何度も出てきたサイトです。他の誰もが私が理解できるよりもスフィンクスをよく理解しているので、答えを見つけるのは簡単ではないと思います。しかし、まだ答えを探している人がいれば、これが最終的に私が最終的に得たものです:

Sudo apt-get update

Sudo apt-get install python3

Sudo apt-get install sqlite3

Sudo apt-get install idle3

Sudo apt-get install python3-pip

Sudo apt-get install python3-docutils

Sudo apt-get install python3-jinja2

Sudo apt-get install python3-pygments

Sudopip3はSphinxをインストールします

重要なのは、pip3があったという事実を見逃していたことです。また、習慣としてパッケージを追加する前に、システムを更新します。

2
anthony

すでに提供されているものと同様の解決策は、sphinx.main()の呼び出しをMakefileのSPHINXBUILD変数に直接配置することです。

SPHINXBUILD   = python3 -c "import sys,sphinx;sys.exit(sphinx.main(sys.argv))"

その後、sphinxで生成された「sphinx-buildのユーザーフレンドリーなチェック」ブロックのコードが失敗するため、削除しました。このソリューションは、個別のスクリプトを必要とせず、pythonインストールまたはsphinxモジュールを削除する必要もないため、私にとっては好ましいものでした。

2
Johann

SphinxはPython-2をサポートする場合にのみインストールされるようです。 Sphinx for python3をインストールするにはさまざまな方法がありますが、 virtualenv を使用して、デフォルトでpython3を使用するカスタム環境を作成します。

virtualenv -p /path/to/python-3 foo

そして、virtualenv内にSphinxをインストールします。

pip install Sphinx

ボーナスとして、このアプローチでは、さまざまなプロジェクトのカスタム環境を作成できます。

PS。 virtualenvwrapper の使用を検討することをお勧めします。

1
plaes

Sphinxは単に「python」コマンドをインタプリタとして使用していると思います。ただし、Makefileによると、インストール用にmakeを実行する場合は、PYTHONオプションを使用して独自に指定できます。

0
Nicolas