53

マシンのネイティブ環境ではなく、virtualenv を使用して html ドキュメントを作成したいと考えています。

virtualenv に入りましたが、実行make htmlすると、モジュールをインポートできないというエラーが表示されます。エラーは、ネイティブ環境でモジュールを使用できないことが原因であることがわかっています。ドキュメントを検索するときに使用する環境を指定するにはどうすればよいですか (例: virtualenv)?

4

3 に答える 3

64

この問題は、Mathijs によって正しく検出されています。

$ which sphinx-build
/usr/local/bin/sphinx-build

仮想環境にsphinx自体をインストールすることで、この問題を解決しました。

環境がアクティブ化されている場合:

$ source /home/migonzalvar/envs/myenvironment/bin/activate
$ pip install sphinx
$ which sphinx-build
/home/migonzalvar/envs/myenvironment/bin/sphinx-build

それは十分にきれいに見えます。

于 2012-07-08T10:58:59.170 に答える
58

ここでの問題make htmlは、コマンドを通常のシェル コマンドとして使用することです。これは、ファイルの最初の行 (つまり. )sphinx-buildで使用する Python インタープリターを明示的に指定します。#!/usr/bin/pythonこの方法で Python が呼び出された場合、仮想環境は使用されません。

これを回避する手っ取り早い方法は、sphinx-buildPython スクリプトをインタープリターから明示的に呼び出すことです。では、これ は次のようにMakefile変更することで実現できます。SPHINXBUILD

SPHINXBUILD   = python <absolute_path_to_sphinx-build-file>/sphinx-build

を変更したくない場合はMakefile、次のようにコマンド ラインからこのパラメーターを渡すこともできます。

make html SPHINXBUILD='python <path_to_sphinx>/sphinx-build'

make buildVirtualEnv 環境内から実行する場合、環境内から Python インタープリターを使用する必要があり、Sphinx が必要なすべての機能を見つけるのを確認できます。

これはきちんとした解決策ではないことをよく知っています。これMakefileは、ファイルの特定の場所を想定してはならないためsphinx-buildです。より適切な解決策の提案は大歓迎です。

于 2010-11-22T20:06:39.833 に答える