如何使用 ctypes 停止和重新启动从 Python 运行的C++代码
how to stop and restart C++ code running from python with ctypes
我有一个C++代码,我运行并使用它的Python函数。我的问题是 - 我如何阻止该代码运行(如果它在控制台中,则为 ctrl+c(然后重新启动,但只有 c++ 部分,python 的其余部分应该像以前一样工作。
以下是我如何使用 c++ 代码:
from os.path import abspath, dirname, join
fname = abspath(inspect.getfile(inspect.currentframe()))
lib = ctypes.cdll.LoadLibrary(join(dirname(fname), 'shared_lib.so'))
func = lib.func
func.restype = None
func.argtypes= None
有没有办法重做?
您可以添加信号处理程序:
import signal
from os.path import abspath, dirname, join
def restart_server():
# Restart code
signal.signal(signal.SIGTERM, restart_server)
fname = abspath(inspect.getfile(inspect.currentframe()))
lib = ctypes.cdll.LoadLibrary(join(dirname(fname), 'shared_lib.so'))
func = lib.func
func.restype = None
func.argtypes= None
此信号处理程序捕获信号终止 (Ctrl+C( 并调用给定函数。
相关文章:
- IPC使用多个管道和分支进程来运行Python程序
- 是否有可能让 c++ dll 在后台运行 python 程序并让它填充向量图?如果是这样,如何?
- 在C++中运行 python 对象
- 从 c++ 运行 python 脚本时出现问题
- 在 boost::p ython 中的 python 对象中运行 python 代码
- 从 c++ 中运行 python 脚本,找不到模块
- 使用C++,如何在Qt Designer中运行python文件
- 如何从Qt C++项目运行Python函数
- 如何从 c++ 运行 python 程序
- 在构建之前,如何使Cmake在构建之前运行Python脚本,以生成用于构建中的项目的文件
- 使用一个 C 程序运行 python 脚本(不同的 python 版本)
- "Segmentation fault"使用 Cmake 在C++代码中运行 python 函数时
- 运行Python脚本同时嵌入C
- 如何从C++程序运行 python 脚本
- c++运行python代码导入自定义模块
- 使用Python.h在C++中运行Python脚本
- 从C++运行Python(VS2010,编译器v100)
- 如何在c++中运行Python文件
- 在gdb中运行python/c++混合代码
- Eclipse 找不到 libnppc.so.7.0 库来运行 python 代码,其中包含使用 CUDA 库的 Opencv 命令