如何忽略或修复RuntimeWarning:编译时版本

时间:2019-02-15 19:39:59

标签: python compilation runtime version cython

我已经在这里和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版本警告?

在脚本中包含编译后的库时,我没有任何问题。所有功能正常工作。因此看来我可以放心地忽略警告了。

但是,在某些情况下,我需要获取脚本的输出,而发出这些警告只会破坏事情。

如何隐藏警告?

0 个答案:

没有答案