2017-02-09 10 views
1

私はgaendというGoogle App Engineプロジェクトを持っています。私はreadthedocsを使ってより良い文書を作成しようとしています。私は使用しましたGoogle App Engineプロジェクトのためのsphinx(readthedocs)ドキュメントを作成するにはどうすればよいですか?

> sphinx-quickstart 

私の基本的なスフィンクスプロジェクトを構築する。プロジェクトのAPIリストを生成するには、

> sphinx-apidoc -o . ../gaend 

が続きます。それから私は実行する

sphinx-autobuild . _build/html 

+--------- manually triggered build --------------------------------------------- 
| Running Sphinx v1.5.2 
| loading pickled environment... done 
| building [mo]: targets for 0 po files that are out of date 
| building [html]: targets for 0 source files that are out of date 
| updating environment: 0 added, 1 changed, 0 removed 
| reading sources... [100%] gaend 
/Users/stephen/gaend/docs/gaend.rst:10: WARNING: autodoc: failed to import module u'gaend.bigquery'; the following exception was raised: 
Traceback (most recent call last): 
File "/Users/stephen/.virtualenvs/gaend/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 551, in import_object 
__import__(self.modname) 
File "/Users/stephen/gaend/gaend/bigquery.py", line 1, in <module> 
    from google.cloud import bigquery 
ImportError: No module named google.cloud 
... 
ImportError: No module named google.appengine.ext 

Google Cloud SDKにアクセスできないという問題があると認識しています。私は単体テストの実行に関して同様の問題を抱えており、これを行うための作業はrunner.pyです。しかし、これは私のシステムのどこかにGoogle Cloud SDK(Python Google App Engineモジュールをインストールしたもの)を置くことに依存しています。ドキュメントを作成するサーバーのreadthedocsでGoogle Cloud SDK(およびPython GAE)を取得する方法を教えてください。

答えて

1

私は解決策を見つけたし、多分あなたの問題を解決していないが、私は内部のソースフォルダに鉱山がconf.pyファイルにgoogle_appengineフォルダとgoogle_appengine/lib/yam/libフォルダのパスを追加する解決ところ、私は覚えていない、同じ問題でしたSphinxのドキュメントフォルダ、このような何か:

conf.pyで:

sys.path.insert(0, os.path.abspath('../../')) 
sys.path.insert(1, '<your local full path>/google_appengine') 
sys.path.insert(1, '<your local full path>/google_appengine/lib/yaml/lib') 

if 'google' in sys.modules: 
    del sys.modules['google'] 

は、私はそれが相対パスで良いだろうことを知っているが、それは私のために働きました。

あなたが文書化しているプログラムを実行する必要があるということは、わかりませんが、とにかく、良いツールです。

+0

おかげフアン、私がやったhttps://github.com/samedhi/gaend/commit/d279e0ada41c2225b23498a6bb7ddba94ae624e5。ローカルでは動作しますが、readthedocsが自分のサーバーに自分のドキュメントを作成しようとすると失敗します...おそらく私は何かのステップがないのでしょうか? –

0

私はちょうど同じ問題を解決しました。そこスフィンクス+ GAEについて尋ねる多くの質問ではないので、私はそれが他の人を助け、それは期待して私のために働いてしまったconf.pyコードを掲示しています:

import os 
import sys 
project_id = 'gae-project-id' 
# environment variables that several utils are assuming are present 
if not os.environ.get('SERVER_SOFTWARE', None): 
    os.environ['SERVER_SOFTWARE'] = 'Development-'+project_id 
if not os.environ.get('APPLICATION_ID', None): 
    os.environ['APPLICATION_ID'] = 'dev~'+project_id 
# project root 
sys.path.insert(0, os.path.dirname(__file__)) 
# downloaded third party libs 
sys.path.insert(0, os.path.dirname(__file__)+"/lib") 
# path to gae sdk 
sdk_path = os.path.join('~/google-cloud-sdk', 'platform/google_appengine') 
try: 
    import google 
    google.__path__.append("{0}/google".format(sdk_path)) 
except ImportError: 
    pass 
sys.path.insert(0, os.path.expanduser(sdk_path)) 
import dev_appserver 
dev_appserver.fix_sys_path() 
関連する問題