c/c++语言开发共享为什么我不能在c中嵌入python时导入’math’库?

我正在使用python 2.6文档中的示例开始尝试在C中嵌入一些python。 示例C代码不允许我执行以下1行脚本:

import math 

使用线:

 ./tmp.exe tmp foo bar 

它抱怨

 Traceback (most recent call last): File "/home/rbroger1/scripts/tmp.py", line 1, in  import math ImportError: [...]/python/2.6.2/lib/python2.6/lib-dynload/math.so: undefined symbol: PyInt_FromLong 

当我在生成的二进制文件(tmp.exe)上执行nm ,它会显示

 0000000000420d30 T PyInt_FromLong 

该函数似乎已定义,为什么共享对象不能找到该函数?

    我正在使用Python 2.6,并且我成功编译并运行了您列出的相同示例代码,而不更改源代码中的任何内容。

      $ gcc python.c -I / usr / include / python2.6 / /usr/lib/libpython2.6.so  $ ./a.out随机randint 1 100 通话结果:39  $ ./a.out随机randint 1 100 通话结果:57 

    我特意选择了random模块,因为它确实from math import log,...所以它肯定也导入了math模块。

    您的问题可能是由于您的链接方式; 看到此论坛post ,其他人有类似的问题。 我再也找不到链接了,但是当尝试链接Python的静态库然后导入需要动态库的模块时,似乎存在一些常见问题。

      以上就是c/c++开发分享为什么我不能在c中嵌入python时导入’math’库?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/550167.html

      (0)
      上一篇 2021年1月14日
      下一篇 2021年1月14日

      精彩推荐