2012-11-14 23 views
6

Sfenks belgelerini, belgeleri okuyarak bağlamaya çalışıyorum. Ben yerel belgelerine inşa edebilirsiniz ama okudum çalıştığınızda dokümanlar otomatik ı aşağıdaki hatayı alıyorum belgeleri oluşturmak:ImportError, Readthedocs üzerindeki kodum için

Sfenks Standart Hata

Making output directory... 

Exception occurred: 
    File "/var/build/user_builds/mousedb/checkouts/latest/Docs/source/conf.py", line 25, in <module> 
    from mousedb import settings 
ImportError: No module named mousedb 
The full traceback has been saved in /tmp/sphinx-err-n_8fkR.log, if you want to report the issue to the developers. 
Please also report this if it was a user error, so that a better error message can be provided next time. 
Either send bugs to the mailing list at <http://groups.google.com/group/sphinx-dev/>, 
or report them in the tracker at <http://bitbucket.org/birkenfeld/sphinx/issues/>. Thanks! 

Projem adı mousedb olduğunu. Bu içe aktarma hatasını neden otomatik olarak oluşturduğumu anlamıyorum ama yerel olarak değil.

ben bu benim ayarlarını alma için bir sorun olduğunu düşünüyorsanız açıklamalara dayanarak Güncelleme

kardeş Dokümanlar dizine dosya. Mutlak bir ithalat yapmak yerine (yaptığım gibi) settings.py ve conf.py

konumlarına bağlı olarak göreceli bir içe aktarım yapmalıyım Ayarları dosyamı conf.py'ye aktarmak istiyorum. Sen ilk başta koduna göre yolu kurma hakkında artık bir "benim koduna yerel mutlak yolu" hakkında konuştuk ve

-mousedb 
--settings.py 
-Docs 
--source 
---conf.py 
--build 
+2

rtd ayarlarında 'Use virtualenv' onay kutusunu ayarlamayı denediniz mi? Projenizi setup.py install –

+0

kullanarak bir virtualenv içine kurun, aynı hatayı denedim. Benim mutlak bir yol yerine benim sys.path.append içinde göreli bir yol kullanmanız gerekebilir (benim yerel kurulum için olduğu gibi) – Dave

+1

Yerel mutlak yolun readthedocs 'sunucuda mevcut olmamak neredeyse garanti edilir: - –

cevap

7

: dizin yapısı aşağıdaki. Bu muhtemelen, setup.py dosyasını kullanmamanız ve ayrıca bir virtualenv kullanmamanız anlamına gelir.

from setuptools import setup 

setup(name='mousedb', 
     version='0.1', 
     description="My sample package", 
     long_description="", 
     author='TODO', 
     author_email='[email protected]', 
     license='TODO', 
     packages=['mousedb'], 
     zip_safe=False, 
     install_requires=[ 
      'Django', 
      # 'Sphinx', 
      # ^^^ Not sure if this is needed on readthedocs.org 
      # 'something else?', 
      ], 
    ) 

/itme/ne olursa olsun bu dosyayı işlemekle sonra, proje için readthedocs ayarlarına gidebilirsiniz:

Docs/ ve mousedb/ aynı dizinde, bir setup.py ekleyin. "Virtualenv kullan" ayarını etkinleştirin. Bu, "projenizi setup.py kurulumunu kullanarak bir virtualenv içine" yerleştirecektir.

Sonuç olarak, readthedocs'un python ile ilgili yaptığı her şeyin projenizi sys.path içinde alacağıdır.

Sorunlarınızın olası nedeni, yerel sisteminizdeki "kök" dizininizden sfenks çalıştırmanızdır; buradaki python geçerli dizininizde mousedb/ paketini sihirli olarak bulur. Ancak readthedocs görünüşe göre Docs/ dizini içinden çalıştırıyor ve bu nedenle mousedb'u bulamıyor.