linux which python,在Linux程序中嵌入Python

你说“python找不到任何库”,你试过启动python并导入它们吗?如果直接在python中导入是一个问题,那么您必须重新检查PYTHOPATH是否正确,或者您安装的文件没有使用要执行的权限设置进行安装。(这种事我已经发生过两次了)。在

另外,您是否已经从manual?中查看了在类unix系统上编译的技巧?。在It is not necessarily trivial to find the right flags to pass to your

compiler (and linker) in order to embed the Python interpreter into

your application, particularly because Python needs to load library

modules implemented as C dynamic extensions (.so files) linked against

it.

To find out the required compiler and linker flags, you can execute

the pythonX.Y-config script which is generated as part of the

installation process (a python3-config script may also be available)

如何编译代码?在

编辑

我已尽力重现你的错误,但在我的机器上做不到。我得到的最多的是我认为你对错误的分析是错误的。在I think the error is pretty clear, Python can't find any libraries

including numpy.

使用import_array()的原因是检查是否有numpy,以及您拥有的numpy版本是否与安装的python版本匹配。在源代码中,它被定义为一个宏(例如,对于py2的np):#if PY_VERSION_HEX >= 0x03000000

#define NUMPY_IMPORT_ARRAY_RETVAL NULL

#else

#define NUMPY_IMPORT_ARRAY_RETVAL

#endif

#define import_array() {if (_import_array() < 0) {PyErr_Print();

PyErr_SetString(PyExc_ImportError, "numpy.core.multiarray failed to

import"); return NUMPY_IMPORT_ARRAY_RETVAL; } }

因为这就是您看到的错误,所以我有理由怀疑您的pip为您的python版本安装了“错误的”numpy。但是根据你的makefile,python3.4文件夹中有一个numpy,如果没有,它会抛出一个错误No such file or directory。此外,您还说您甚至不得不使用LD_LIBRARY_PATH(不是推荐的btw)来启动python,这只意味着numpy实际上没有被当前为python定义的任何路径正确指向,包括您在编译的python中拥有的site-packages文件夹(默认情况下会进行搜索)。在

我怀疑您默认安装了一个预先存在的python,并且您的系统范围的环境路径被设置为它。但考虑到你显式地将python3文件夹中的numpy链接到和您setenvPYTHONHOME,这是一个非常奇怪的语句。在

很抱歉,我帮不上什么忙,但是如果不从头开始构建python(目前也不在debian上),我无法重现这个问题。祝你好运,随时通知我?在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值