Привет, ЛОР!
Натолкнулся я тут на забавный артефакт. Вкратце, если в директории есть файл, совпадающий по имени со встроенными модулями питона, то некоторые программы пытаются загрузить его вместо встроенного модуля.
Я на это напоролся при использовании pipenv. Например:
~/trash/test> find .
.
./Pipfile.lock
./derp
./derp/__init__.py
./derp/types.py
./Pipfile
/trash/test> pipenv --venv
/home/void/.local/share/virtualenvs/test-qwpSrWlE
~/trash/test> cd derp
~/trash/test/derp> cat types.py
raise Exception("Python is retarded")
~/trash/test/derp> pipenv --venv
Fatal Python error: initsite: Failed to import the site module
Traceback (most recent call last):
File "/nix/store/yf4i32dx953p2dv2agfdyxdwg6ba0l61-python3.7-setuptools-41.0.1/lib/python3.7/site-packages/site.py", line 73, in <module>
__boot()
File "/nix/store/yf4i32dx953p2dv2agfdyxdwg6ba0l61-python3.7-setuptools-41.0.1/lib/python3.7/site-packages/site.py", line 26, in __boot
import imp # Avoid import loop in Python 3
File "/nix/store/s5f3vpmig33nk4zyk228q55wdydd3pc2-python3-3.7.3/lib/python3.7/imp.py", line 19, in <module>
from importlib._bootstrap import _ERR_MSG, _exec, _load, _builtin_from_name
File "/nix/store/s5f3vpmig33nk4zyk228q55wdydd3pc2-python3-3.7.3/lib/python3.7/importlib/__init__.py", line 57, in <module>
import types
File "./types.py", line 1, in <module>
raise Exception("Python is retarded")
Exception: Python is retarded
Скажи, ЛОР, это вообще нормально? Если нет, то это баг в самом пистоне или это баг в pipenv? Или я чего-то не понимаю и мне просто нельзя называть свои модули types.py, re.py и т.д.?