Как игнорировать или исправить RuntimeWarning: версия компиляции - PullRequest
0 голосов
/ 15 февраля 2019

Я искал здесь и в Google и не могу найти ответ на этот вопрос.

У меня есть код Python (библиотека), который я сделал и проверил, что он работает.Тем не менее, я хочу скомпилировать ее в библиотеку .so и по-прежнему использовать ее в сценариях Python (я знаю, что некоторые думают, что я сумасшедший, но просто подумаем меня ...)

Я использую Cython3, чтобы сделатьэто и оно компилируется.Но если я запускаю его в системе с другой установленной версией python (т.е. скомпилирован в системе с Python 3.5 и запускаю в системе с Python 3.4), то я получаю следующую ошибку:

_frozen_importlib:321: RuntimeWarning: compiletime version 3.5 of module 'mynewlib' does not match runtime version 3.4

Важно, чтобы эти предупреждения не появлялись каждый раз, когда я запускаю скрипт на python, который включает этот модуль (т.е. из mynewlib import *)

Что если я скомпилирую его в целевой системе, но затем в Python целевой системыобновляется точечная версия?Тогда эти ошибки появятся только снова.

Есть ли решение для этого?Вот код из моего скрипта, который компилирует код Python:

    cython3 -a -3 --lenient $MODULE_NAME.py
gcc -shared -pthread -fPIC -fwrapv -O2 -Wall -fno-strict-aliasing -I/usr/include/python3.5 -o $MODULE_NAME.so 

Есть ли какие-либо другие параметры командной строки, которые я должен изменить?В строке gcc у меня есть -Wall, но есть ли способ изменить это, чтобы исключить эти предупреждения о версии Python?

У меня нет проблем при включении скомпилированной библиотеки в мои скрипты.Все функции работают нормально.Так что, похоже, я могу смело игнорировать предупреждения.

Однако * * * * * имеют место случаи, когда мне нужно получить выходные данные сценария, и если эти предупреждения извергают, только ломает вещи.

Как мне подавить предупреждения?

...