Làm cách nào để gọi tập lệnh python từ C++?
Python đi kèm với Mac OS X. Nhưng phiên bản mà bạn có rất có thể là phiên bản cũ hơn. Tải xuống phiên bản nhị phân mới nhất của Python chạy trên cả hệ thống Power PC và Intel và cài đặt nó trên hệ thống của bạn Show
Python là một trong những ngôn ngữ lập trình phổ biến nhất do cú pháp đơn giản, dễ học và hỗ trợ đa nền tảng. Bên cạnh đó, nhiều thư viện và mô-đun Python chất lượng cao có sẵn để bạn tùy ý sử dụng, cho phép bạn thực hiện những công việc nặng nhọc chỉ với một vài dòng mã. Điều này làm cho Python trở thành một trong những cách hiệu quả nhất để phát triển nguyên mẫu. Tuy nhiên, Python không nhanh bằng ngôn ngữ lập trình C và nhiều phần mềm sản xuất quan trọng về hiệu năng như hệ điều hành Linux, máy chủ web và cơ sở dữ liệu được viết bằng C. Nếu bạn đang phát triển một chương trình bằng C, nhưng một số phần của nó cần được viết bằng Python, bạn có thể viết một mô-đun Python cho chương trình đó và nhúng mô-đun Python vào chương trình C bằng API Python/C Trong hướng dẫn này, hãy kiểm tra cách sử dụng API Python/C để nhúng mã Python vào C. Hướng dẫn sẽ kết thúc với một ví dụ đầy đủ về cách gọi Python từ mã C Bước 1. Cài đặt gói phát triển PythonVì bạn cần truy cập API Python/C, trước tiên hãy cài đặt gói phát triển Python Đối với Ubuntu, Debian hoặc Linux Mint$ sudo apt-get install python2.7-dev Đối với CentOS, Fedora hoặc RHEL$ sudo yum install python-devel Sau khi cài đặt thành công, tệp tiêu đề Python sẽ được tìm thấy trong $ sudo yum install python-devel3. Tùy thuộc vào bản phân phối Linux của bạn, đường dẫn chính xác có thể khác. Ví dụ: nó là $ sudo yum install python-devel4 trên CentOS 6 Bước 2. Khởi tạo trình thông dịch và đặt đường dẫnBước đầu tiên để nhúng Python vào C là khởi tạo trình thông dịch Python, có thể thực hiện việc này bằng hàm C sau Có thể bạn quan tâmPy_Initialize(); Sau khi trình thông dịch được khởi tạo, bạn cần đặt đường dẫn đến mô-đun Python mà bạn muốn nhập trong chương trình C của mình. Ví dụ: giả sử mô-đun Python của bạn nằm ở $ sudo yum install python-devel5. Sau đó sử dụng lệnh gọi hàm C sau để đặt đường dẫn PySys_SetPath("/usr/local/modules"); Bước 3. Chuyển đổi dữ liệuMột trong những khía cạnh quan trọng nhất của việc nhúng Python vào C là chuyển đổi dữ liệu. Để chuyển dữ liệu sang hàm Python từ C, trước tiên bạn cần chuyển đổi dữ liệu từ kiểu dữ liệu C sang kiểu dữ liệu Python. API Python/C cung cấp nhiều chức năng khác nhau để thực hiện điều này. Ví dụ, để chuyển chuỗi C sang chuỗi Python, chúng ta sử dụng hàm $ sudo yum install python-devel6________số 8 Một chức năng tương tự khác là $ sudo yum install python-devel7, chuyển đổi kiểu dữ liệu dài trong C thành Python int. Mọi hàm API Python/C đều trả về một tham chiếu thuộc loại $ sudo yum install python-devel8 Bước 4. Xác định một mô-đun PythonKhi bạn muốn nhúng mã Python vào một ngôn ngữ khác chẳng hạn như C, mã cần được viết trong một mô-đun Python, sau đó được nhập bằng ngôn ngữ khác. Vì vậy, hãy kiểm tra cách nhập mô-đun Python trong C Để minh họa, hãy triển khai một mô-đun Python ví dụ đơn giản như sau $ sudo yum install python-devel1 Hàm Python ở trên lấy một chuỗi làm đối số và trả về hai lần lặp lại của chuỗi. Ví dụ: nếu chuỗi đầu vào là $ sudo yum install python-devel9, hàm này trả về Py_Initialize();0. Đặt tên tệp mô-đun này là Py_Initialize();1 và đặt mô-đun vào thư mục mô-đun Python đã khai báo trước đó ( $ sudo yum install python-devel5) Bước 5. Tải một mô-đun PythonBây giờ bạn đã xác định mô-đun Python của mình, đã đến lúc tải nó vào chương trình C. Mã C để nhập mô-đun trông như thế này $ sudo yum install python-devel6 Bước 6. Xây dựng đối số chức năngKhi bạn tải một mô-đun, bạn đã sẵn sàng gọi các hàm Python được xác định trong mô-đun. Thông thường, chúng ta cần chuyển một hoặc nhiều đối số cho hàm Python. Chúng ta phải xây dựng một đối tượng bộ Python chứa các đối số cho một hàm Python Trong ví dụ của chúng tôi, hàm Py_Initialize();3 được xác định trong mô-đun của chúng tôi nhận một đối số. Vì vậy, chúng tôi xây dựng một đối tượng Tuple Python với kích thước như sau. Chúng ta có thể đặt từng mục trong đối tượng tuple bằng cách sử dụng Py_Initialize();4 $ sudo yum install python-devel9 Chúng ta đã xây dựng thành công một đối số được truyền trong lệnh gọi hàm, đã đến lúc chúng ta nên gọi hàm python từ ứng dụng C của mình Bước 7. Gọi một hàm PythonKhi một đối tượng bộ Python được tạo thành công làm đối số hàm, chúng ta có thể gọi hàm Python nhận đối số. Đối với điều này, trước tiên hãy lấy tham chiếu đến hàm được xác định trong một mô-đun bằng cách sử dụng Py_Initialize();5, sau đó gọi hàm bằng Py_Initialize();6. Ví dụ $ sudo yum install python-devel2 Bước 8. Kiểm tra lỗiMột cách phổ biến để tránh lỗi thời gian chạy là kiểm tra giá trị trả về của hàm và thực hiện hành động thích hợp tùy thuộc vào giá trị trả về. Tương tự như biến toàn cục errno trong các chương trình C, API Python/C duy trì một chỉ báo toàn cầu báo cáo về lỗi cuối cùng đã xảy ra. Khi chức năng API Python/C không thành công, chỉ báo chung được đặt để chỉ báo lỗi và có thể sử dụng Py_Initialize();7 để hiển thị một bản ghi lại tương ứng mà con người có thể đọc được. Ví dụ $ sudo yum install python-devel4 Bạn có thể dễ dàng kết hợp các kiểm tra lỗi khác nhau bên trong ứng dụng của mình Đây là chương trình C hoàn chỉnh nhúng mã Python như được mô tả trong hướng dẫn này $ sudo yum install python-devel0 Bước 9. Biên dịch và thực thiLưu mã trên dưới dạng Py_Initialize();8 và biên dịch mã trong khi liên kết với thư viện Python ( Py_Initialize();9). Tùy thuộc vào distro, bạn có thể sử dụng các phiên bản khác nhau (e. g. , PySys_SetPath("/usr/local/modules");0) $ sudo yum install python-devel1 Bây giờ hãy chạy tệp thực thi đã biên dịch với ba đối số $ sudo yum install python-devel2 Ba đối số trong bài kiểm tra này là tên mô-đun, tên hàm trong mô-đun, đối số chuỗi được truyền cho hàm Python |
Bài Viết Liên Quan
Khóa học cấp tốc về python phiên bản thứ 2 phần giới thiệu thực hành, dựa trên dự án về lập trình pdf
Khóa học về sự cố Python. Sau đây là phần đánh giá cuốn sách Python Crash Course, 2nd Edition. Giới thiệu thực hành, dựa trên dự án về lập trình của Eric ...
Lịch trình Lễ hội hóa trang Ambrosia 2023
Năm 2024, lễ hội hóa trang là ngày 11 tháng 2. Ngày trong tuần là Chủ nhật và nó rơi vào tuần thứ 6 của nămLễ hội hóa trang Ý 2022 diễn ra khi nào?Trong năm nay, ...
Công cụ lưu trữ mysql
Công cụ lưu trữ là một mô-đun phần mềm mà hệ thống quản lý cơ sở dữ liệu sử dụng để tạo, đọc, cập nhật dữ liệu từ cơ sở dữ liệu. Có hai ...
JavaScript có thể NHẬN dữ liệu bài đăng không?
JavaScript có các mô-đun và phương thức tuyệt vời để tạo các yêu cầu HTTP có thể được sử dụng để gửi hoặc nhận dữ liệu từ tài nguyên phía máy ...
2023 Santa Fe spare tire
ông già NoelPhụ Kiện & Phụ Kiện Xe Hyundai Santa CruzĐây là những phụ tùng và phụ kiện chính thức của Hyundai Santa Cruz. Mua sắm qua danh mục của chúng tôi để ...
Làm thế nào để bạn làm tròn toán học trong python?
Round() là một chức năng tích hợp sẵn với python. Nó sẽ trả về cho bạn một số float sẽ được làm tròn đến vị trí thập phân được cung cấp làm đầu ...
Js có khó hơn c++ không?
Python thường được so sánh với các ngôn ngữ thông dịch khác như Java, JavaScript, Perl, Tcl hoặc Smalltalk. So sánh với C++, Common Lisp và Scheme cũng có thể làm sáng ...
Tại sao hình nền của tôi không hiển thị trong html
Phần tử body bao phủ khung nhìn, do đó, việc đặt hình ảnh làm nền cho phần thân ban đầu sẽ bao phủ khung nhìn (nói đúng ra là hình ảnh thực sự được ...
Lớp trăn google
Trang web này được hỗ trợ rộng rãi bởi DataCamp. DataCamp cung cấp Hướng dẫn Python tương tác trực tuyến cho Khoa học dữ liệu. Tham gia cùng 575.000 người học ...
CSS loại bỏ không gian thừa xung quanh văn bản
Trình tự của khoảng trắng là. Các ký tự dòng mới trong nguồn được xử lý giống như các khoảng trắng khác. Các dòng bị ngắt khi cần thiết để điền vào ...
Giải thích biến tĩnh trong PHP
Tĩnh là một từ khóa PHP có nhiều cách sử dụng. Nó gần như được sử dụng phổ biến, mặc dù có nhiều biến thể của nó. Hãy xem xét tất cả năm người ...
When are Pentecost holidays BW 2023?
Ở nhiều cộng đồng, lễ hội thu hoạch là một trong những điểm nổi bật của mùa thu nếu không thì khá ảm đạm. Một mặt, cần thể hiện niềm vui của ...
Truy vấn Google Trang tính không khớp
Chức năng Google Sheets QUERY là một trong những chức năng mạnh mẽ nhất trong Google Sheets. Nó rất linh hoạt và có thể được áp dụng cho các vấn đề đơn giản ...
Tạo phân lớp python
Python là ngôn ngữ hướng đối tượng ngay từ đầu. Bởi vậy, việc tạo ra và sử dụng các lớp và các đối tượng là hết sức dễ dàng. Bài viết này sẽ ...
Giá trị tối đa của MySQL max_allowed_packet
Trang sau cung cấp hướng dẫn về quy trình cập nhật giá trị tham số RDS cho max_allowed_packet thành 64Mb (67108864) bằng ba tùy chọn. Terraform, CloudFormation và Bảng ...
Tệp css không tải
Maps JavaScript API cho phép bạn tùy chỉnh bản đồ với nội dung và hình ảnh của riêng bạn để hiển thị trên các trang web và thiết bị di động. API JavaScript ...
Làm cách nào để chuyển đổi một ô excel thành html?
Công cụ này giúp tạo một trang web HTML bằng cách sử dụng dữ liệu trong tệp Excel. Tệp HTML kết quả có thể được xem trên trang web hoặc có thể được sử ...
Kia Sportage 2023 có vấn đề về động cơ?
Kia Sportage là một chiếc SUV nhỏ gọn đã được sản xuất từ năm 1993. Nó hiện đang ở thế hệ thứ tư. Sportage là mẫu xe bán chạy nhất của Kia ...
JavaScript có chuyển chuỗi theo tham chiếu không?
Như đã thảo luận ở trên, truyền theo tham chiếu có thể được sử dụng bằng cách truyền tham chiếu của một đối số trong hàm gọi đến tham số của hàm ...
Ký tự nào hiển thị tên đầy đủ tháng trong ngày trong php?
MySQL MONTHNAME() trả về tên đầy đủ của tháng cho một ngày nhất định. Giá trị trả về nằm trong phạm vi từ 1 đến 12 ( Tháng 1 đến Tháng 12). Nó trả về ...