記錄linux 下c++ 調用 python腳本的坑


 

1、需要安裝python的依賴包

這里我安裝了多次,這個坑最耽誤時間。

第一步:一開始是本地安裝,下載https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh。make install 到指定的文件進行安裝。

第二步:以為這只是python開發需要的環境,所以又安裝了python3.8-dev。

使用CMakeLists.txt,引用include文件路徑,項目工程中引用頭文件Python.h 時總是報錯,然后網絡上一頓沖浪,還是沒解決問題。

自己推測應該是版本重復,推測是對的,然后嘗試刪除/usr/include/python3.8 目錄,然而還是不行。

自己把第一步安裝的文件中include文件目錄,全部cp到項目中,竟然還是不行,這是我比較納悶的和崩潰的,最后查找原因竟然是cp過來的文件夾python3.8名稱和/usr/include目錄下的文件同名 (使用 locate python.h 確認),其實是我把項目中cp過來的python3.8文件改了一個名稱,然后就可以編譯了才確認的。

 

2、依賴的文件

 

需要添加 -lpython3.8  而不是-lpython ,這里要指定版本號,也是依賴文件名要寫對。

 

3、要調用的python腳本要和可執行文件放在同一目錄  而不是項目文件 (我編譯的文件都是放到build文件夾下)

 

4、附上CMakeLists.txt

cmake_minimum_required(VERSION 3.0)

project(cpp_python_exe)
set(CMAKE_CXX_STANDARD 11)

set(INCLUDE_DIR ${CMAKE_SOURCE_DIR}/include/python_include)

include_directories(${INCLUDE_DIR})
link_directories(${CMAKE_SOURCE_DIR}/lib)

add_executable(cpp_python_exe ../main.cpp)
target_link_libraries(cpp_python_exe -lpython3.8)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM