Я изо всех сил пытаюсь установить MYPYPATH, чтобы mypy разрешал модули, которые не находятся в том же каталоге, что и моя основная программа. (Это нормально, если они находятся в одном каталоге).
Я работаю в PowerShell в Windows 10. Полный пример ниже. Может ли кто-нибудь сказать мне точное значение, которое я должен установить для MYPYPATH? Я пробовал все варианты, которые только мог придумать: относительный путь, абсолютный путь, пути с '/' '\' и '\\'. Я прочитал mypy docs.
Вот мои файлы:
C:\USERS\GARETH\MYPY
├───modules
│ utils.py
│
└───tests
utils_test.py
utils.py:
def ff(x: str) -> str:
return "Hello " + x
utils_test.py:
from modules.utils import ff
print(ff("world")) # OK
ff(42) # error
Вот мой сеанс PowerShell. Python находит модуль и выдает ошибку выполнения (как и ожидалось):
PS C:\Users\Gareth\Mypy\tests> $env:PYTHONPATH
..
PS C:\Users\Gareth\Mypy\tests> python .\utils_test.py
Hello world
Traceback (most recent call last):
File ".\utils_test.py", line 8, in <module>
ff(42) # error
File "C:\Users\Gareth\Mypy\modules\utils.py", line 3, in ff
return "Hello " + x
TypeError: can only concatenate str (not "int") to str
Каким бы ни было значение MYPYPATH, mypy не может найти модуль:
PS C:\Users\Gareth\Mypy\tests> $env:MYPYPATH
..
PS C:\Users\Gareth\Mypy\tests> mypy .\utils_test.py
utils_test.py:1: error: Cannot find module named 'modules.utils'
utils_test.py:1: note: See
https://mypy.readthedocs.io/en/latest/running_mypy.html#missing-imports
Кто-нибудь может сказать мне точное значение, которое я должен установить для MYPYPATH? Это последний mypy:
PS C:\Users\Gareth\Mypy\tests> mypy --version
mypy 0.660
__init__.py
). Я бы попытался повторить ваши эксперименты MYPYPATH либо после добавления файлаmodules/__init__.py
, либо при использовании флага--namespace-packages
(документы здесь) и посмотрите, поможет ли это. - person Michael0x2a   schedule 06.02.2019