在c中嵌入python时Numpy导入失败

2023-12-30

我正在尝试将 python 程序嵌入到 c++ 代码中。我遇到的问题是使用包含 numpy 导入的 python 脚本。 例如,如果我使用以下 C++ 代码

#include <Python.h>
int main(int argc,char *argv[])
{
double 
    x=2.,
    xp=4.,
    dt=6.,
    y=8,
    yp=1,
    dz=6;
Py_Initialize();

PyObject* myModuleString = PyString_FromString((char*)"log");
PyObject* myModule = PyImport_Import(myModuleString);


PyObject* myFunction = PyObject_GetAttrString(myModule,(char*)"derive");
PyObject* args = PyTuple_Pack(  6,
PyFloat_FromDouble(x),
PyFloat_FromDouble(xp),
PyFloat_FromDouble(dt),
PyFloat_FromDouble(y),
PyFloat_FromDouble(yp),
PyFloat_FromDouble(dz));

PyObject* myResult = PyObject_CallObject(myFunction, args);

PyObject *ts= PyTuple_GetItem(myResult,0);
PyObject *zs= PyTuple_GetItem(myResult,1);
double result_t = PyFloat_AsDouble(ts);
double result_z = PyFloat_AsDouble(zs);
printf("%3f \n %f \n", result_t,result_z);

Py_Finalize();

system("pause");

return 0;
}

使用以下包含该函数的 log.py 脚本derive

def derive(x,xp,dt,y,yp,dz):
return log(abs(x - xp)/dt),exp((y-yp)/dz)

它运行正确,但如果 log.py 包含from numpy import array, 它失败

from numpy import array
def derive(x,xp,dt,y,yp,dz):
return log(abs(x - xp)/dt),exp((y-yp)/dz)

我认为您正在静态链接,但没有保留加载动态扩展模块所需的所有符号(即-Xlinker -export-dynamic). See 链接要求 http://docs.python.org/2/extending/embedding.html#linking-requirements,建议您从以下位置查询正确的选项distutils.sysconfig.get_config_var('LINKFORSHARED').

顺便说一句,可变参数函数Py_BuildValue http://docs.python.org/2/c-api/arg.html#Py_BuildValue是一种更方便的创建方式args.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在c中嵌入python时Numpy导入失败 的相关文章

  • 在f字符串中转义字符[重复]

    这个问题在这里已经有答案了 我遇到了以下问题f string gt gt gt a hello how to print hello gt gt gt f a a gt gt gt f a File
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 有人用过 Dabo 做过中型项目吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们正处于一个新的 ERP 风格的客户端 服务器应用程序的开始阶段 该应用程序是作为 Python 富客户端开发的 我们目前正在评估 Dabo
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • Scrapy:如何使用元在方法之间传递项目

    我是 scrapy 和 python 的新手 我试图将 parse quotes 中的项目 item author 传递给下一个解析方法 parse bio 我尝试了 request meta 和 response meta 方法 如 sc
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • 导入错误:没有名为 site 的模块 - mac

    我已经有这个问题几个月了 每次我想获取一个新的 python 包并使用它时 我都会在终端中收到此错误 ImportError No module named site 我不知道为什么会出现这个错误 实际上 我无法使用任何新软件包 因为每次我

随机推荐

  • rake db:migrate 不起作用(Rails 4.0.4)

    我在 Rails 4 0 4 Ruby 2 1 0 上有一个新应用程序 我做的第一件事就是添加 Devise gem 当我想运行 rake db migrate 时 它 什么也不做 没有错误 但迁移未执行 您能帮我看看这个案子该怎么办吗 我
  • NSSet 使用谓词返回与给定类匹配的对象

    假设我有一个 NSSet 其中包含 id 类型的对象集合 其中放入了CircleShape SquareShape HexagonalShape实例 不是真正的协议或类名 是否可以使用谓词或另一行代码来返回 CircleShape 的所有实
  • 有没有好的方法来获取下周三的日期?

    有没有好的方法来获取下周三的日期 即如果今天是星期二 我想获取本周星期三的日期 如果今天是星期三 我想获取下星期三的日期 如果今天是星期四 我想获取下周星期三的日期 Thanks 基本算法如下 获取当前日期 获取星期几 找出与周三的不同之处
  • 如何从 msbuild 中排除 xml doc 文件

    我在我的 C 项目中使用了许多第三方程序集 其中许多都包含我相信可以给我智能感知的 xml 文档文件 不管怎样 当我构建项目时 这些 xml 文件最终会出现在 bin 文件夹中 有什么方法可以排除它们 以便它们不会与我的应用程序一起部署 除
  • 配置ServiceStack基础URI

    我正在使用服务堆栈和 AppHostHttpListenerBase 创建一个自托管 REST 服务 我想为我的服务使用基本 URI 例如 api 如下所示 http myserver api service1 param http mys
  • 字节数组到 NSData

    WebService JSON 响应即将到来 在响应中 图像以字节数组的形式出现 我必须在 UIImageView 中显示图像 我正在尝试将字节数组转换为 NSData 但不知道如何做到这一点 任何帮助 将不胜感激 我确信字节数组中包含图像
  • 无法在react-native-reanimated-bottom-sheet内滚动Flatlist

    我已经导入了包react native reanimated bottom sheet到我的项目来创建底部工作表行为 我在里面创建了Faltlist所以我可以拥有不同的项目 几乎 12 个项目 并滚动它们 问题是底部工作表打开 但我无法在其
  • 没有收集报道信息,伊斯坦布尔报道。 (页面中类似问题的答案对我来说不起作用)

    我使用这个命令 set CODACY PROJECT TOKEN my token istanbul cover report lcov node modules mocha bin mocha r babel register r tes
  • 从字符串创建 JS 多维数组

    我想创建一个多维数组 如下所示 var multi arr A 2 5 B 4 4 C 4 4 使用 ajax 从数据库获取的字符串值 从数据库获取的字符串数据 以 分隔 var string A 2 5 B 4 4 C 4 4 我用 分隔
  • TransferCurrentComplicationUserInfo是否更适合复杂功能更新?

    有什么区别transferCurrentComplicationUserInfo and transferUserInfo 我想将数据从我的 AppDelegate 发送到时钟套件复杂功能 transferCurrentComplicati
  • Rails:Capybara 无法使用 Devise 夹具数据登录用户

    我正在为我的应用程序编写集成测试 并尝试使用 Capybara 登录用户 当我创建一个User测试本身中的对象并输入该用户的详细信息 它通过并且用户已登录 但是当我尝试使用灯具的详细信息登录时 用户永远不会登录 正如可以在test log
  • VSCode:可以从多个模块访问该包

    我已经研究这个问题好几天了 看来所有答案都是特定于 Eclipse 的 我在 Visual Studio Code 上遇到此错误 The package javax xml bind annotation is accessible fro
  • C递归头文件包含问题?

    假设您必须在 2 个头文件中定义相关结构 如下所示 a h内容 include b h typedef struct A B b A b h内容 include a h typedef struct B A a B 在这种情况下 这种递归包
  • Swagger 中的重复参数输出

    更新 我开始怀疑这是否是由于错误造成的 https github com domaindrivendev Swashbuckle issues 590 https github com domaindrivendev Swashbuckle
  • 我可以用较小的配置文件来编写 Spring 配置文件吗?

    我有几个项目都使用一个项目作为数据模型 每个项目都有自己的 applicationContext xml 文件 其中包含一堆重复的数据内容 我想要一个 modelContext xml 文件和另一个用于我的 ui xml 等的文件 我可以这
  • 如何在iPhone应用程序中记录用户的所有触摸

    注意 这是对以下内容的扩展 和澄清 一个问题 https stackoverflow com questions 3918739 determining which view touch was in for all touches我昨天问
  • Git 使用与 bash 不同的 shell 作为别名

    我学习git有一段时间了 最 近我一直在使用别名 一切正常 直到上次 我的示例别名停止工作 git simple commit 工作正常 simple loop simpleLoop NAME 1 i 1 while i le 2 do g
  • 将项目添加到 Google Apps 脚本中的现有菜单

    如何在 Google Apps 脚本中将项目添加到现有菜单 在 Google 文档中 我可以创建一个new菜单并向其中添加一个项目 DocumentApp getUi createMenu MyMenu addItem Insert My
  • Android中的空进程是什么以及它有什么用?

    android中的空进程是什么以及它有什么用处 我有时在我的设备中看到空进程 它显示具有 0 个服务的进程 0 个活动意味着其中没有组件的进程 我还想知道作为开发人员 它是否有任何用处 或者只是在操作系统级别有用 android中什么是空进
  • 在c中嵌入python时Numpy导入失败

    我正在尝试将 python 程序嵌入到 c 代码中 我遇到的问题是使用包含 numpy 导入的 python 脚本 例如 如果我使用以下 C 代码 include