long_description 仅包含 README.rst 的第一行

long_description only contains first line of README.rst

我在使用 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 上,我得到相同的输出。为什么我最后只有自述文件的第一行?

哇,这是个愚蠢的问题。

失败的脚本是

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 存储库和 had a look at their setup.py file,它就是这样做的。