Какой метод я могу использовать вместо __file__ в python?

Я конвертирую свой код python в c на cython и после этого компилирую файл .c и использую .so в моем проекте. Моя проблема: Я использую __file__ в моем коде python, а во время компиляции gcc он не получает ошибку. но когда я запускаю программу и импортирую .so в другие файлы python, появляется сообщение об ошибке из строки __file__.

Как решить эту проблему? Есть ли способ заменить на __file__?

Ответы

Ответ 1

Попробуйте добавить это в начало файла:

import inspect
if not hasattr(sys.modules[__name__], '__file__'):
    __file__ = inspect.getfile(inspect.currentframe())

Ответ 2

Не слишком уверен, как вы сделаете его совместимым с python, но gcc #define __FILE__ для имени файла, в котором находится код.