我遇到了包装此模块的README.rst文件的问题。我查了很多来自SO的帖子,但没有发现任何帮助。
目前,我正在使用一个非常简单的自述文件进行测试
pytelemetry
===========
pytelemetry enables remote monitoring and control of embedded
devices. Specifically, pytelemetry implements a custom communication
protocol, based on the PubSub messaging pattern.
以下是setup.py文件的概述
here = path.abspath(path.dirname(__file__))
# Get the long description from the README file
with open(path.join(here, 'README0.rst'), encoding='utf-8') as f:
long_description = f.read()
print(long_description) # Prints the correct readme
setup(
name='pytelemetry',
version='1.1.0',
description='Lightweight remote monitoring and control of embedded devices',
long_description=long_description, # Not working !
我用python setup.py bdist_wheel
构建包。使用python 3.5.1,轮子0.24.0和0.29.0。
print(long_description)
工作得很好但是当我解压缩生成的轮子时,DESCRIPTION.rst文件(我认为应该包含长描述)只包含:
pytelemetry
这对应于我的README.rst的第一行。在pypi上,我得到相同的输出。为什么我最终只能在我的自述文件的第一行?
答案 0 :(得分:2)
失败的脚本是
try:
long_description = pypandoc.convert('README.md', 'rst')
except OSError:
print("Pandoc not found. Long_description conversion failure.")
import io
# pandoc is not installed, fallback to using raw contents
with io.open('README.md', encoding="utf-8") as f:
long_description = f.read()
我添加了这一行:
try:
long_description = pypandoc.convert('README.md', 'rst')
long_description = long_description.replace("\r","") # THAT $%^$*($ ONE
except OSError:
print("Pandoc not found. Long_description conversion failure.")
import io
# pandoc is not installed, fallback to using raw contents
with io.open('README.md', encoding="utf-8") as f:
long_description = f.read()
现在,如果我解压缩生成的轮子,我可以在DESCRIPTION.rst中看到我的完整自述文件!好极了。 我不确定是什么原因引起了这个问题,或者它是pypandoc还是设置函数有问题。
为了找到这个解决方案,我简单地选择了pypandoc repo和had a look at their setup.py file,就是这样。