Я читаю эту статью .
Мне интересно, почему приведенное ниже утверждение из статьи верно? Поскольку я могу использовать решение 1 - то есть - python -m packA.a2
, и оно отлично работает.
Чтобы дать вам некоторый контекст, Решение 1 говорит:
Используйте абсолютный импорт с корнем в каталоге test / (т. Е. Средний столбец в таблице выше). Это гарантирует, что прямой запуск start.py
всегда будет работать. Чтобы запустить a2.py
напрямую, запустите его как импортированный модуль, а не как скрипт:
- измените каталоги на
test/
в консоли python -m packA.a2
Но в Дело 3 Автор говорит:
sys.path
может измениться (взять 2)
Более сложная проблема - следующий пример. Предположим, что a2.py
никогда не нужно запускать напрямую, но он импортируется как start.py
, так и a1.py
, которые запускаются напрямую.
В этом случае использование Решения 1, описанного выше, не будет работать. Тем не менее, другие решения остаются в силе.
Но я попробовал это и заставил работать, используя python -m packA.a1