Через переменную __file__.
#!/usr/bin/env python3
import os
d, f = os.path.split(os.path.abspath(__file__))
Если проект состоит не из одного файла и надо получить путь и имя файла, из которого проект запустился, надо либо целенаправленно брать эту переменную в том файле, либо использовать argv.
#!/usr/bin/env python3
import sys, os
main_file = os.path.abspath(sys.argv[0])
d, f = os.path.split(main_file)
print(sys.argv[0])
print(main_file)
print(d)
print(f)
Список всегда начинается со скрипта, даже если в командной строке вначале стоял интерпретатор.
$ ./test.py
./test.py
/home/user/test.py
/home/user
test.py
$ python3 test.py
test.py
/home/user/test.py
/home/user
test.py
$ cd SomeDir
$ ../test.py
../test.py
/home/user/test.py
/home/user
test.py
$ python3 ../test.py
../test.py
/home/user/test.py
/home/user
test.py
Абсолютный путь, разумеется, будет неправильным, если из кода сменить рабочую директорию до вызова abspath.