Здесь есть несколько хороших ответов, которые обрабатывают эту ошибку в широком диапазоне. Я столкнулся с конкретной ситуацией с Spring Security, которая быстро, хотя, вероятно, и не была оптимальной, исправлена.
Во время авторизации пользователя (сразу после входа в систему и прохождения аутентификации) я тестировал пользовательский объект для определенного органа в пользовательском классе, который расширяет SimpleUrlAuthenticationSuccessHandler.
Мой пользовательский объект реализует UserDetails и имеет набор ленивых загруженных Ролей, которые бросали исключение «org.hibernate.LazyInitializationException», не могли инициализировать исключение прокси - без сеанса. Изменение этого набора из «fetch = FetchType.LAZY» на «fetch = FetchType.EAGER» исправило это для меня.
Этот файл является расширением cpython (от обычного имени). В зависимости от используемых технологий, он может быть сгенерирован практически из любого типа файла с правильным набором инструментов, хотя чаще всего это расширение .c
. Наиболее распространенными являются .cpp
(для кода c ++) и .pyx
(для модулей Cython). В качестве примера необычного типа файла, который может создавать расширения c, я написал setuptools-golang , который создает такие файлы из источника .go
.
Вторая часть вашего вопроса - что означает каждая из этих частей расширения. Это изложено в PEP 3149 , хотя я объясню каждую часть здесь. Каждый разделен тире (-
), я объясню каждый из них отдельно:
cpython
: это «реализация». в данном случае это означает, что вы используете самую популярную реализацию python, которая реализована в C python / cpython . Другой пример «реализации», который вы можете увидеть здесь: pypy3
(для версии 3.x pypy) 35m
: это первая часть маркера «двоичный интерфейс приложения», в данном случае он говорит, что это python3.5, и m
указывает, что python был скомпилирован с использованием pymalloc
x86_64
: эта часть abi указывает, что он был скомпилирован для 64-битная архитектура, также известная как amd64
linux-gnu
: это указывает на то, что совместно используемый объект предназначен для linux