Ответ 1
Попробуйте добавить это в начало файла:
import inspect
if not hasattr(sys.modules[__name__], '__file__'):
__file__ = inspect.getfile(inspect.currentframe())
Я конвертирую свой код python в c на cython и после этого компилирую файл .c и использую .so в моем проекте.
Моя проблема:
Я использую __file__
в моем коде python, а во время компиляции gcc он не получает ошибку. но когда я запускаю программу и импортирую .so в другие файлы python, появляется сообщение об ошибке из строки __file__
.
Как решить эту проблему? Есть ли способ заменить на __file__
?
Попробуйте добавить это в начало файла:
import inspect
if not hasattr(sys.modules[__name__], '__file__'):
__file__ = inspect.getfile(inspect.currentframe())
Не слишком уверен, как вы сделаете его совместимым с python, но gcc #define
__FILE__
для имени файла, в котором находится код.