我正在尝试编写c++代码来与我的python应用程序交互,我使用的是64位解释器,一个64位版本的pybind11,我正在将代码编译为64位.pyd
。这是我到目前为止的代码:
#include <pybind11-global/pybind11/pybind11.h>
#include <Windows.h>
#include <cmath>
namespace py = pybind11;
const double e = 2.7182818284590452353602874713527;
double sinh_impl(double x) {
return (1 - pow(e, (-2 * x))) / (2 * pow(e, -x));
}
double cosh_impl(double x) {
return (1 + pow(e, (-2 * x))) / (2 * pow(e, -x));
}
double tanh_impl(double x) {
return sinh_impl(x) / cosh_impl(x);
}
PYBIND11_MODULE(gtpec_cluster, m) {
m.def("fast_tanh2", &tanh_impl, R"pbdoc(
Compute a hyperbolic tangent of a single argument expressed in radians.
)pbdoc");
#ifdef VERSION_INFO
m.attr("__version__") = VERSION_INFO;
#else
m.attr("__version__") = "dev";
#endif
}
当我构建解决方案时,我可以从Python代码导入它:
>>> from gtpec_cluster import fast_tanh2
>>> fast_tanh2(2)
0.9640275800758167
>>>
但是如果我在Visual Studio中运行,它会给我一个错误,gtpec_cluster.pyd is not a valid Win32 application
。有没有一种方法告诉Visual Studio它应该使用64位而不是32位库?这是我使用的Python:
1条答案
按热度按时间kzipqqlq1#
假设你在Visual Studio中,你可以在解决方案资源管理器中右键单击Python项目,然后单击“设置为启动项目”。然后你可以继续开始。