如何在readthedocs中结合autodoc使用Python 3.5语法?

时间:2016-03-21 23:24:05

标签: python python-3.x python-sphinx autodoc read-the-docs

我想使用readthedocs.org为我的项目生成文档(包括使用autodoc自动生成的文档)。但是,我的项目使用Python 3.5语法(asyncawait)并且看起来它不能处理它。构建成功,虽然我遇到了很多这样的错误:

/home/docs/checkouts/readthedocs.org/user_builds/sparrow/checkouts/latest/docs/source/entity.rst:176: WARNING: autodoc: failed to import module 'sparrow.entity'; the following exception was raised:
Traceback (most recent call last):
  File "/home/docs/checkouts/readthedocs.org/user_builds/sparrow/envs/latest/local/lib/python3.4/site-packages/sphinx/ext/autodoc.py", line 385, in import_object
    __import__(self.modname)
  File "/home/docs/checkouts/readthedocs.org/user_builds/sparrow/checkouts/latest/sparrow/__init__.py", line 26, in <module>
    from .model import *
  File "/home/docs/checkouts/readthedocs.org/user_builds/sparrow/checkouts/latest/sparrow/model.py", line 37
    async def install(self):

有没有办法解决这个问题?

3 个答案:

答案 0 :(得分:4)

其他答案有点过时,因为现在Readthedocs.org确实支持Python 3.5和3.6。要使用它,必须配置readthedocs.yml。有关此内容的文档可在此处找到:http://docs.readthedocs.io/en/latest/yaml-config.html

使Readthedocs.org使用Python 3.5的最小例子是:

build:
    image: latest

python:
    version: 3.5

如果您有任何依赖关系,可以通过requirements.txt文件或setup.py处理。例如,如果您想使用setup.py,只需告诉Readthedocs.org安装您的软件包:

build:
    image: latest

python:
    version: 3.5
    setup_py_install: true

答案 1 :(得分:2)

感谢Dietrich的回答(我没有找到github问题),我发现了一个关于 conda 的非常有价值的提示。它看起来有点像virtualenv,但它有能力自己安装二进制文件和python版本。

我能够通过在我的github repo中添加两个文件来使其工作,两者都在根目录中(虽然environment.yml可以去其他地方)。如果有人想要获得基本的conda环境,你可以使用它而不必自己安装conda。

<强> readthedocs.yml

conda:
    file: environment.yml

<强> environment.yml

name: py35
dependencies:
- openssl=1.0.2g=0
- pip=8.1.1=py35_0
- python=3.5.1=0
- readline=6.2=2
- setuptools=20.3=py35_0
- sqlite=3.9.2=0
- tk=8.5.18=0
- wheel=0.29.0=py35_0
- xz=5.0.5=1
- zlib=1.2.8=0
- pip:
  - momoko>=2.2.3
  - psycopg2>=2.6.1
  - tornado==4.3

通常,您可以在requirements.txt文件中添加需求,然后通过pip安装。当使用conda时,你必须在environment.yml文件中列出它们,就像我已经使用momoko,psycopg2和tornado一样。

答案 2 :(得分:1)

Readthedocs.org目前不支持Python 3.5,请参阅issue 1990: python 3.5 support for build system