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の準備ができていますか?間違えましたか?
昨夜、あなたの質問に出くわしたとき、私はこれとまったく同じ問題を抱えていました。 —私も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をインストールしてください。
これがお役に立てば幸いです。
インストール:pipforpython3(pip3そのように)。
pip3 install -U sphinx
Building:Makefile
(linux/Mac)の変更。
SPHINXBUILD = python -msphinx
上記のMakefileの行で、pythonをpython3(またはpython3.x)に変更します。
SPHINXBUILD = python3 -msphinx
デフォルトの場合pythonは2.xバージョンのpythonを指しています。
Ubuntuでは、python3-sphinx
は別のパッケージです。私の場合、python3-sphinxをインストールする必要がありました。
Sudo apt-get install python3-sphinx
おそらく両方をマシンで実行できますが、古いマシンを削除しました。
Sudo apt-get remove python-sphinx
私の古いmakefileは、この後、私のPython 3コードで問題なく動作しました。
私はUbunutにいて、同じ問題を抱えていました。 Josh_PまたはNicolasの答えは使用しません。
だから私は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つのプロジェクトに対してローカルで使用することもできます。
答えを探してみたら、何度も出てきたサイトです。他の誰もが私が理解できるよりもスフィンクスをよく理解しているので、答えを見つけるのは簡単ではないと思います。しかし、まだ答えを探している人がいれば、これが最終的に私が最終的に得たものです:
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があったという事実を見逃していたことです。また、習慣としてパッケージを追加する前に、システムを更新します。
すでに提供されているものと同様の解決策は、sphinx.main()の呼び出しをMakefileのSPHINXBUILD変数に直接配置することです。
SPHINXBUILD = python3 -c "import sys,sphinx;sys.exit(sphinx.main(sys.argv))"
その後、sphinxで生成された「sphinx-buildのユーザーフレンドリーなチェック」ブロックのコードが失敗するため、削除しました。このソリューションは、個別のスクリプトを必要とせず、pythonインストールまたはsphinxモジュールを削除する必要もないため、私にとっては好ましいものでした。
SphinxはPython-2をサポートする場合にのみインストールされるようです。 Sphinx for python3をインストールするにはさまざまな方法がありますが、 virtualenv を使用して、デフォルトでpython3を使用するカスタム環境を作成します。
virtualenv -p /path/to/python-3
foo
そして、virtualenv内にSphinxをインストールします。
pip install Sphinx
ボーナスとして、このアプローチでは、さまざまなプロジェクトのカスタム環境を作成できます。
PS。 virtualenvwrapper の使用を検討することをお勧めします。
Sphinxは単に「python」コマンドをインタプリタとして使用していると思います。ただし、Makefileによると、インストール用にmake
を実行する場合は、PYTHONオプションを使用して独自に指定できます。