首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >python嵌入模块未找到错误?

python嵌入模块未找到错误?
EN

Stack Overflow用户
提问于 2018-08-21 06:15:22
回答 2查看 0关注 0票数 0

我试图在我的C ++项目中嵌入一个python代码。但是,由于某些原因,嵌入式python脚本无法找到导入的模块(即numpy)为了使问题更容易,请考虑以下简化代码CPP:

代码语言:javascript
复制
int main() {
    char filename[] = "path to python file";
    FILE* fp;
    Py_Initialize();
    fp = _Py_fopen(filename, "r");
    PyRun_SimpleFile(fp, filename);
    Py_Finalize();
    return 0
}

Python代码:

代码语言:javascript
复制
import numpy as np

但是,我收到以下错误

ModuleNotFoundError:没有名为'numpy'的模块

我应该提一下,我可以使用cmd运行Python脚本而不会出错(已经安装了所有必需的库)。

EN

回答 2

Stack Overflow用户

发布于 2018-08-21 14:40:40

嵌入时,如果你没有做任何特别的事情来告诉Python,它将通过查找python你的程序来计算Python安装的位置PATH。你可能与Anaconda Python库链接,但bin它的目录不在PATH。实际上用它Py_SetPythonHome()来告诉Python安装的位置会更好。

另一个问题是,当您使用Anaconda Python进行链接时,如果您没有以固定到该特定共享库位置的方式链接它,那么如果它是相同的Python版本,它将错误地选择系统Python。查看LD_RUN_PATH链接时使用环境变量以指定在运行时使用库的目录。即使这样,有时候由于某些原因这对Anaconda Python不起作用,并且需要做相同的操作LD_PRELOAD来强制加载正确的库。

总的来说,我对Anaconda Python的经验,特别是嵌入mod_wsgi,是一种痛苦,并不总是有效。普通的PSF Python发行版更适合嵌入。

票数 0
EN

Stack Overflow用户

发布于 2018-08-21 15:25:29

我找不到问题的根源。但是,我卸载了Anaconda并安装了原始的python,这解决了我的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100002329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档