Первая директория в sys.path
🔸 Когда вы запускаете Python-интерпретатор в интерактивном режиме, в системные пути (sys.path) в самое начало добавляется текущая рабочая директория
>>> for path in sys.path:
... print(f'"{path}"')
""
"/usr/lib/python37.zip"
"/usr/lib/python3.7"
...
Первая строка пустая, что и означает текущую рабочую директорию.
🔸 Если вы запускаете интерпретатор передавая скрипт как аргумент, то история получается иная. На первом месте будет директория в которой располагается скрипт. А текущая рабочая директория игнорируется.
Пишем скрипт с таким содержанием:
# script.py
import sys
for path in sys.path:
print(f'"{path}"')
Запускаем
python3 /home/user/dev/script.py
Получаем
"/home/user/dev"
"/usr/lib/python37.zip"
"/usr/lib/python3.7"
...
🔸 Если вы запускаете скрипт по имени модуля то на первом месте будет домашняя директория текущего юзера
python3 -m script
"/home/user"
"/usr/lib/python37.zip"
"/usr/lib/python3.7"
...
Скрипт должен быть доступен для импорта
На что это влияет?
На видимость модулей для импорта. Если вы ждёте, что, запустив скрипт по пути, сможете импортировать модули из текущей рабочей директории, то вы ошибаетесь. Придётся добавлять путь os.getcwd() в sys.path самостоятельно или заранее объявлять переменную PYTHONPATH.
#basic
🇺🇸 Dave Roberts quiere dirigir el Equipo de EE.UU. si se permite a los jugadores de las Grandes Ligas participar en los Juegos Olímpicos de Verano de 2028, según Dylan Hernández.
🛰 El Dodger Stadium será la sede de béisbol para los Juegos Olímpicos de Verano de 2028.
#️⃣#TeamUSA
🗞 | t.me/MLB_Daily
🇺🇸 La lista del Team USA está tomando forma para el Clásico Mundial de Béisbol de 2026!
👀 ¿A quién más quieres ver unirse al equipo?
#️⃣#TeamUSA
🗞 | t.me/MLB_Daily
Totally inspired by Sydney McLaughlin’s grit, strength, faith & love of country. What a woman!!! Go #TeamUSAhttps://twitter.com/realdailywire/status/1423278387469029381
⚾️🐯 Tarik Skubal hará solo una aparición como titular para el Equipo de EE.UU. en el Clásico Mundial de Béisbol, dijo el ganador del premio Cy Young en dos ocasiones consecutivas a los periodistas.
Se sospecha que Skubal se enfrentará a Gran Bretaña en una ronda preliminar de la competición.
"... si llegan a la final, voy a intentar presionar para ir a verlos y estar con los chicos".
#️⃣#Skubal#TeamUSA#WBC26
🗞 | t.me/MLB_Daily
🇺🇸🅱 Roman Anthony se une al Equipo USA para el Clásico Mundial de Béisbol como reemplazo del lesionado Corbin Carroll.
#️⃣#TeamUSA#Anthony
🗞 | t.me/MLB_Daily