Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Sphinx的conf.py文件中使用python函数_Python_Import_Python Sphinx - Fatal编程技术网

如何在Sphinx的conf.py文件中使用python函数

如何在Sphinx的conf.py文件中使用python函数,python,import,python-sphinx,Python,Import,Python Sphinx,我编写了一个名为myFunction的小python函数,它存储在function.py中,我想在conf.py文件中调用它。当从测试python文件调用该函数时,该函数工作正常,因此我似乎在导入该文件中的模块时遇到了问题 设置如下所示: DocumentSourceFolder/sourcefile.txt DocumentSourceFolder/conf.py DocumentSourceFolder/function.py 在conf.py中,我添加了以下内容: def setup(ap

我编写了一个名为myFunction的小python函数,它存储在function.py中,我想在conf.py文件中调用它。当从测试python文件调用该函数时,该函数工作正常,因此我似乎在导入该文件中的模块时遇到了问题

设置如下所示:

DocumentSourceFolder/sourcefile.txt

DocumentSourceFolder/conf.py

DocumentSourceFolder/function.py

在conf.py中,我添加了以下内容:

def setup(app):
    return
导入功能

variable=function.myFunction()

(其中变量是conf.py文件中已经存在的内容)

但是,在本文档上运行sphinx时,我收到错误:

ImportError:没有名为function的模块

有什么想法吗

谢谢

试试:

from function import function

与:

Python尝试导入模块;而你的文件显然不是。
请参阅

中的部分,原来Sphinx在conf.py文件中导入python模块时有点挑剔。要避免错误,您需要执行两个步骤:

(一) 添加到conf.py文件中

import sys, os
sys.path.append(os.path.relpath('relative/path/to/folder/containing/module'))
这意味着sphinx现在在这里查找扩展模块。然后您必须将模块名称添加到
extensions=[…]
列表中

(二) 向您的模块中添加以下内容:

def setup(app):
    return
sphinx需要此“setup()函数”才能接受您的模块确实是一个扩展模块


完成了

谢谢你的回答。这只会产生与以前相同的错误。这个解决方案实际上是使用sphinx的。我在下面添加了我的解决方案。“Python试图导入一个模块;而您的文件显然不是这样”?你为什么这么说?当然,这是一个模块。您可以在conf.py中导入您喜欢的任何模块(只要它位于
sys.path
)。它不必是带有
setup()
函数的扩展模块。在没有setup()函数的情况下尝试它会导致运行Sphinxi时出错。如果您只想从conf.py导入模块,请确保可以通过
sys.path
找到它。如果该模块应为Sphinx扩展模块,则还必须将其添加到extensions配置变量中,并包含
setup()
函数。