首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否自动创建.pyi文件?

是否自动创建.pyi文件?
EN

Stack Overflow用户
提问于 2016-02-24 20:42:47
回答 2查看 16.9K关注 0票数 26

如何自动创建pyi文件的样板代码?

我想像pep484中描述的那样为类型提示创建一个pyi文件,它包含所有的方法名。

我不想要魔法。我想在自动创建文件后添加类型信息。

我想避免copy+paste的工作。

目标:在Python2的PyCharm中输入提示。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-01 02:08:00

就我而言,在PyCharm中没有这样的直接工具。然而,有第三方工具可以做到这一点。

.pyi生成器

MyPy

是的,我猜任何想要在Python语言中使用编译时类型检查的人,最终可能都会使用MyPy。MyPy包含生成.pyi文件的stubgen.py工具。

用法

代码语言:javascript
复制
mkdir out
stubgen urllib.parse

生成out/urllib/parse.pyi

你也可以在Python2中使用它:

代码语言:javascript
复制
stubgen --py2 textwrap

对于C模块:

代码语言:javascript
复制
scripts/stubgen --docpath <DIR>/Python-3.4.2/Doc/library curses

如果要指定自定义软件包的路径,可以使用--search-path选项:

代码语言:javascript
复制
stubgen my-pkg --search-path=folder/path/to/the/package

make-stub-files

这个项目正是致力于这个目标。

用法

非常基本的一个(但它有几个选项,只需咨询README.mdmake_stub_files -h即可

代码语言:javascript
复制
make_stub_files foo.py

预写的.pyi文件

因此,您不必编写自己的代码。

Typeshed

是的,如果你在自己的项目中使用.pyi文件,你可能也想在使用外部代码时使用它。Typeshed包含用于Python2和Python3 stdlib的.pyi文件以及一堆Python2库(如rediscrypto等)还有一些Python3库(如werkzeugrequests),它们的版本都很好。

.pyi文件的PyCharm替代方案

如果你很懒,或者只是在做一个不需要.pyi文件的项目,你不想被第三方工具打扰,PyCharm允许你使用:

票数 38
EN

Stack Overflow用户

发布于 2020-01-11 21:34:40

我为此写了一个makefile:

代码语言:javascript
复制
package := example
sources := $(wildcard $(package)/*.py)

stub: $(sources)
    stubgen --output . --package $(package)

dist: setup.py stub
    python $< sdist bdist_wheel

publish: dist
    twine upload dist/*

.PHONY += stub dist publish

在打包并上载到make publish之前,运行make publish将在与其对应的.py文件相同的位置生成.pyi文件。它们将包含在provided that they are part of package_data包中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35602541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档