发布于 2016-03-01 02:08:00
就我而言,在PyCharm中没有这样的直接工具。然而,有第三方工具可以做到这一点。
.pyi生成器
MyPy
是的,我猜任何想要在Python语言中使用编译时类型检查的人,最终可能都会使用MyPy。MyPy包含生成.pyi文件的stubgen.py工具。
用法
mkdir out
stubgen urllib.parse生成out/urllib/parse.pyi。
你也可以在Python2中使用它:
stubgen --py2 textwrap对于C模块:
scripts/stubgen --docpath <DIR>/Python-3.4.2/Doc/library curses如果要指定自定义软件包的路径,可以使用--search-path选项:
stubgen my-pkg --search-path=folder/path/to/the/package这个项目正是致力于这个目标。
用法
非常基本的一个(但它有几个选项,只需咨询README.md或make_stub_files -h即可
make_stub_files foo.py预写的.pyi文件
因此,您不必编写自己的代码。
是的,如果你在自己的项目中使用.pyi文件,你可能也想在使用外部代码时使用它。Typeshed包含用于Python2和Python3 stdlib的.pyi文件以及一堆Python2库(如redis、crypto等)还有一些Python3库(如werkzeug或requests),它们的版本都很好。
.pyi文件的PyCharm替代方案
如果你很懒,或者只是在做一个不需要.pyi文件的项目,你不想被第三方工具打扰,PyCharm允许你使用:
发布于 2020-01-11 21:34:40
我为此写了一个makefile:
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包中。
https://stackoverflow.com/questions/35602541
复制相似问题