Какие пути добавляются к sys.path
при запуске команды, каковы факторы, влияющие на нее?
Моя версия Python - 3.6.4, и я также пробовал ее в версии 3.7.
Структура каталогов:
.
├── __init__.py
└── src
├── a.py
└── b.py
Код:
# a.py
class A: pass
# b.py
from sys
print(sys.path)
from src.a import A
a = A()
print(a)
Я пытался запустить python3 src/b.py
на двух машинах с одинаковой версией Python.Один из них не сообщил об ошибке, и произошла другая ошибка.
В правильном результате выполнения в sys.path
есть два каталога, один - текущий каталог, а другой - каталог src
;Правильный вывод:
['/home/work/test/testimport/src', '/home/work/test/testimport',...]
<src.a.A object at 0x7f8b71535ac8>
Неправильный результат:
['/home/work/test/testimport/src', ...]
Traceback (most recent call last):
File "src/b.py", line 3, in <module>
from src.a import A
ModuleNotFoundError: No module named 'src'
sys.path
содержит только каталог src
.
Какой путь будет добавленв sys.path, когда я запускаю python3 src / b.py?