Первая директория в 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
🪐 The galaxy cluster Abell 1689, located about 2.2 billion light-years from Earth, has helped astronomers map out enormous amounts of dark matter—an invisible substance that makes up most of the cluster’s mass but can only be detected through its gravitational effects. By observing how Abell 1689 bends and magnifies the light from galaxies behind it (a phenomenon called gravitational lensing), scientists reveal a hidden universe shaped by something we still can't see. ✨
#darkmatter⚡#abell1689⚡#clustering⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
#typescript#cli#clustering#concurrency#dependency_injection#effect#error_handling#javascript#observability#opentelemetry#platform#schema#typescript#workflows
Effect is a powerful TypeScript framework that helps you build reliable and complex applications by managing side effects like logging, network calls, and database operations in a safe and organized way. It uses a core `Effect` type to describe workflows that are lazy, composable, and type-safe, allowing you to handle errors and dependencies explicitly. The framework is modular, with many packages for AI, CLI tools, distributed computing, SQL databases, and more, making it flexible for various needs. Using Effect improves code quality, concurrency handling, and maintainability, helping you write robust TypeScript apps efficiently[1][2][4][5].
https://github.com/Effect-TS/effect