栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在readthedocs上记录cython函数

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在readthedocs上记录cython函数

我遇到了同样的问题,发现现在可以在readthedocs上编译Cython扩展了。

简短的答案:Cython模块可以使用readthedocs提供的virtualenv功能进行编译。

有关稍长的答案和示例项目,请参见下文。

问题是什么?

据我所知,sphinx导入了将要记录的项目的所有模块,然后在python中提取文档字符串。对于Cython模块,此操作将失败,因为它们无法直接导入,必须先进行编译。在readthedocs上开箱即用,无法编译模块,但是它们提供了实现此目的的工具。

如何解决这个问题。

在virtualenv中安装项目时,将构建Cython模块(到.so文件中),然后可以将其导入。不过,这可能需要一些外部模块(以下示例为numpy,当然也包括Cython)。可以在存储库中的pip需求文件(

requirements.txt
)中指定这些内容。

  1. 启用该选项
    install your project inside a virtualenv
    下的 管理 - > 高级设置 上readthedocs
  2. 输入
    requirements.txt
    相对于项目根目录的路径(
    docs/requirements.txt
    在以下示例中)
  3. (如有必要,请更改python解释器版本)

现在,

python setup.py install
每次构建文档时都将安装您的项目(使用)。如果您在readthedocs的 Builds
选项卡中单击相应的构建,则可以在 Setup Output 下看到安装脚本的 输出
。这是可能出现编译时错误的地方。请注意,编译项目可能需要一些时间。 __

示例项目

一个Python软件包,由多个Cython模块组成,每个模块都有Google样式的docstrings。

my_project/    setup.py    my_package/        __init__.py   # imports Cython modules        cython_module1.pyx        cython_module2.pyx        ...    docs/        requirements.txt        Makefile        source/ conf.py index.rst ... #  more documentation

requirements.txt

cython>=0.20numpy>=1.9

注意事项

在我的项目上尝试时,我遇到了无法导入Cython模块的问题。Sphinx的错误消息显示为:

home/docs/checkouts/readthedocs.org/user_builds/... :4: WARNING: autodoc: failed to import module 'cython_module1';...File "/home/docs/checkouts/readthedocs.org/user_builds/.../__init__.py", ...from .cython_module1 import CythonClass

发生这种情况是因为我曾经在本地构建我的文档,并添加了一行

...sys.path.insert(0, os.path.abspath('../../')) # path to my_package...

对我的

conf.py
建议在这里。这已经解决了我在本地构建时的问题(使用在那里我编译了项目
python setup.py build_ext--inplace
),但是在virtualenv中安装时,这指向了错误的my_package版本(即源代码,而不是已安装的软件包)。那里的狮身人面像找不到任何要导入的.so文件。

要解决此问题,只需完全删除该行。

我希望这有帮助。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/661321.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号