我已经在这里和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版本警告?
在脚本中包含编译后的库时,我没有任何问题。所有功能正常工作。因此看来我可以放心地忽略警告了。
但是,在某些情况下,我需要获取脚本的输出,而发出这些警告只会破坏事情。
如何隐藏警告?