我创建的python library取决于pypiwin32包。对于某些功能,他们使用_winreg
包。它适用于Windows,但RTD virtualenv未在Windows上运行且此程序包不可用。因为它是python本身的一部分而不是pypi,所以我无法将其作为依赖。
每次我从源代码构建文档时,都会错过_winreg
包。
我尝试在setup.py中使用类似的内容删除对pypiwin32
的依赖:
if os.environ.get('READTHEDOCS') == 'True':
REQUIRED = []
else:
REQUIRED = [
"pypiwin32"
]
适用于所有.rst Sphinx文件。另一方面,没有生成函数文档。在本地计算机(Windows)上,所有内容都已正确记录。
注意: Read the docs文档是从我的github项目的rtd分支生成的。
有没有解决方法呢?
谢谢。
答案 0 :(得分:0)
我可能找到了有效的解决方案。由于阅读文档不支持_winreg
,因此我对阅读文档的pypiwin32
禁用了完全依赖。
# ... part of setup.py
if os.environ.get('READTHEDOCS') == 'True':
REQUIRED = []
else:
REQUIRED = [
"pypiwin32"
]
READTHEDOCS
是环境变量,仅适用于RTD,see more。
这打破了我图书馆的所有电话。因此,我创建了另一个带有模型函数的文件,仅用于Read The Docs:
# ... part of __init__.py
if os.environ.get('READTHEDOCS') != 'True':
from win32api import GetModuleHandle
# ... import rest of win32api functions
else:
from .read_the_docs import *
read_the_docs.py
的内容:
def GetMOduleHandle(*args, **kwargs):
pass
# ... rest of file
这样,本地版本会使用pypiwin32
和_winreg
,但在阅读文档时,Sphinx会使用这种"模型"效用