numpy required for C++ library to work with python bindings

Đang mở
#358 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
25/100
Loại issue
Lỗi
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Đình trệ
Công nghệ
cpp, python
Lĩnh vực
api

Hướng nghiên cứu

Bắt đầu bằng cách tái hiện lỗi với entry point BOOST_PYTHON_MODULE(test_lib) được示示示, so sánh các lần chạy Python có và không import numpy trước. Theo dõi đường dẫn khởi tạo phía sau test_lib.initialize() và thu thập đủ mã nguồn để xác định liệu việc import numpy có bắt buộc hay không; hoàn tất khi giải thích được dependency hoặc xác định được bước khởi tạo bị lỗi.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

I've added Boost python bindings into a C++ library. Calling the initialization method of this C++ library from python will fail if numpy is not imported into python before importing my C++ library. There are no errors but the C++ library spits out it failed to initialize. Why would numpy be required in python for my boost bindings to work with this C++ library? See example below.

C++

// Boost imports I'm using
#include <boost/python.hpp>
#include <boost/python/dict.hpp>
#include <boost/python/object.hpp>
using namespace boost;

static bool InitializePy() {
    // Call library initialize here
}

BOOST_PYTHON_MODULE(test_lib)
{
    python::def("initialize", InitializePy);
}

Python

# import numpy
import test_lib
# Without importing numpy, this initialization will fail
test_lib.initialize()

I can share more source if anyone would like a look but the way I see it, regardless of what else is being done in C++, numpy needing to be imported in python is odd to me.

Ngôn ngữ chính
C++
Star
537
Fork
223
Merge trung bình
11 giờ 22 phút
Pull request đã merge (30 ngày)
2

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của boostorg/python

Tất cả issue của boostorg/python

Issue tương tự

Thêm issue về C++

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.