【发布时间】:2018-11-03 15:35:39
【问题描述】:
我正在尝试使用cython 从 C 调用 python 的图像显示代码。
我遵循了从.pyx 创建.c 和.h 并将它们添加到Visual Studio 中的C 代码中的过程。
我在命令提示符下检查了 python 版本,它是Python 3.6.3 |Anaconda custom (64-bit)。我可以在命令提示符下在那里导入 cv2。
但是当我将这个 .c 和 .h 文件调用到 C 代码中时,我得到了错误
NameError:名称“cv2”未定义
异常被忽略:“read.readImage”
NameError: name 'cv2' is not defined
我已经检查了环境中是否设置了 python 路径。我仍然收到错误消息。
read.pyx 的代码是
import numpy as np
import cv2
cdef public void readImage():
img = cv2.imread('dog.jpeg')
print('reading')
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
在visual studio中souce.cpp的代码是
#include "Python.h"
# include "read.h"
using namespace cv;
int main(void) {
Py_Initialize();
PyInit_read();
readImage();
Py_Finalize();
return 0;
}
【问题讨论】:
-
这可能是你的问题,但没有代码就不可能说stackoverflow.com/q/50382755/5769463
-
比较你的python安装和独立exe中
import sys; print(sys.path)的结果。如果它们不同,我不会感到惊讶。你说设置了python路径,取什么值? -
非常感谢。这只是 python 路径的问题。现在已经解决了。