mypy 找不到黑色的类型提示
mypy can't find type hints for black
我有一个文件 test.py
,其中只包含行 import black
。当我 运行 mypy test.py
时,出现以下错误:
test.py:1: error: Skipping analyzing 'black': found module but no type hints or library stubs
test.py:1: note: See https://mypy.readthedocs.io/en/latest/running_mypy.html#missing-imports
Found 1 error in 1 file (checked 1 source file)
但是,当我查看 black
的 source 时,似乎所有内容都有类型提示。 我需要在 mypy
中做些什么不同的事情才能让它在导入 black
时使用类型提示?
环境设置:
conda create -n test python=3.7 -y
conda activate test
pip install black mypy
编辑 - 来自 the link mentioned in the error message:
Mypy will not try inferring the types of any 3rd party libraries you have installed unless they either have declared themselves to be PEP 561 compliant stub package or have registered themselves on typeshed
我原以为 black
已经满足其中一个要求,但它似乎没有在 typeshed. From here 上注册,看来一个包必须有一个 py.typed
文件才能与内联注释符合 PEP 561,black
似乎也没有。
我的问题仍然存在 - 鉴于输入信息已经存在于 black
中,我如何(不需要在某处批准 PR)让 mypy
使用它?
我没有看到有关 py.typed
文件的任何详细信息 - 如果它只是一个空文件并且只有它的存在很重要,我想我可以在某个地方创建它然后输入就可以了吗?
编辑 - 这已在 black
中修复(PR here,合并于 2020 年 5 月 8 日),因此在新版本中不需要解决方法。
在安装目录中创建一个名为 py.typed
的空文件就足够了:
cd ~/anaconda/envs/test/lib/python3.7/site-packages # or wherever your packages are installed
# black.py is directly in site-packages, but py.typed needs to be in a directory for the module
mkdir black
touch black/py.typed
我有一个文件 test.py
,其中只包含行 import black
。当我 运行 mypy test.py
时,出现以下错误:
test.py:1: error: Skipping analyzing 'black': found module but no type hints or library stubs
test.py:1: note: See https://mypy.readthedocs.io/en/latest/running_mypy.html#missing-imports
Found 1 error in 1 file (checked 1 source file)
但是,当我查看 black
的 source 时,似乎所有内容都有类型提示。 我需要在 mypy
中做些什么不同的事情才能让它在导入 black
时使用类型提示?
环境设置:
conda create -n test python=3.7 -y
conda activate test
pip install black mypy
编辑 - 来自 the link mentioned in the error message:
Mypy will not try inferring the types of any 3rd party libraries you have installed unless they either have declared themselves to be PEP 561 compliant stub package or have registered themselves on typeshed
我原以为 black
已经满足其中一个要求,但它似乎没有在 typeshed. From here 上注册,看来一个包必须有一个 py.typed
文件才能与内联注释符合 PEP 561,black
似乎也没有。
我的问题仍然存在 - 鉴于输入信息已经存在于 black
中,我如何(不需要在某处批准 PR)让 mypy
使用它?
我没有看到有关 py.typed
文件的任何详细信息 - 如果它只是一个空文件并且只有它的存在很重要,我想我可以在某个地方创建它然后输入就可以了吗?
编辑 - 这已在 black
中修复(PR here,合并于 2020 年 5 月 8 日),因此在新版本中不需要解决方法。
在安装目录中创建一个名为 py.typed
的空文件就足够了:
cd ~/anaconda/envs/test/lib/python3.7/site-packages # or wherever your packages are installed
# black.py is directly in site-packages, but py.typed needs to be in a directory for the module
mkdir black
touch black/py.typed