相关疑难解决方法(0)

是否有使包符合 PEP-561 的最佳实践?

我正在编写一个 Python 项目,该项目作为包发布到类似 pypi 的存储库(使用setuptoolstwine)。我在我的代码中使用类型提示。

问题是,从不同的项目导入包并运行时mypy,出现以下错误: error: Skipping analyzing 'XXX': found module but no type hints or library stubs

据我了解,我收到此错误是因为我的包不符合https://www.python.org/dev/peps/pep-0561/

在网上搜索了一些之后,我没有找到一种非手动将所需文件添加到包中的方法。

我求助于编写自己的代码:

  1. 运行stubgen以创建存根文件。
  2. py.typed在每个目录中创建文件。
  3. 在文件的dictinpackage_data字段中收集所有创建的setup.py文件。

这段代码解决了这个问题并且mypy运行没有错误。但这对我来说感觉非常错误。是否有标准工具可以使包符合 PEP-561?我还缺少其他东西吗?

python setuptools mypy

15
推荐指数
2
解决办法
2720
查看次数

如何向PyPi分发类型提示?

我一直致力于为响应库添加Python 3.5类型提示.但是当我测试制作发行版时,sdist或者bdist_wheel它没有安装我的.pyi文件.我可以看到它是分发的一部分,但它不会比这更进一步.

你可以在这里看到我在我的回购中得到的东西:https://github.com/gaqzi/responses/tree/feature/type-hints-file

我读过PEP484,它提到存根文件应该是可分发的.但我似乎无法弄清楚如何.:)

是否有问题,因为响应不会创建包?它只是一个模块文件,这就是为什么它没有正确添加?

我在构建软件包时看到的内容:

% python setup.py sdist
running sdist
running egg_info
writing requirements to responses.egg-info/requires.txt
writing top-level names to responses.egg-info/top_level.txt
writing responses.egg-info/PKG-INFO
writing dependency_links to responses.egg-info/dependency_links.txt
reading manifest file 'responses.egg-info/SOURCES.txt'
writing manifest file 'responses.egg-info/SOURCES.txt'
running check
warning: check: missing meta-data: if 'author' supplied, 'author_email' must be supplied too
creating responses-0.6.0
creating responses-0.6.0/responses.egg-info
making hard links in responses-0.6.0...
hard linking README.rst -> responses-0.6.0
hard linking responses.py -> …
Run Code Online (Sandbox Code Playgroud)

python setuptools

6
推荐指数
1
解决办法
224
查看次数

标签 统计

python ×2

setuptools ×2

mypy ×1