3. 報錯
總結c++調python環境配置
python/c api參考文件
// 新增當前路徑
pyrun_******string("import sys");
pyrun_******string("print ('---import sys---')");
pyobject *pname, *pmodule, *pfunc, *pargs;
// 載入名為pytest的指令碼
pname = pyunicode_fromstring("cp1");
pmodule = pyimport_import(pname);
if (!pmodule)
// 找出函式名為add的函式
printf("----------------------\n");
pfunc = pyobject_getattrstring(pmodule, "sum");
//找不到add函式的原因:py檔案和cpp檔案不能以test為名
if (!pfunc || !pycallable_check(pfunc))
// 引數進棧
*pargs;
pargs = pytuple_new(2);
pytuple_setitem(pargs, 0, py_buildvalue("l", 3));
pytuple_setitem(pargs, 1, py_buildvalue("l", 4));
// 呼叫python函式
pyobject_callobject(pfunc, pargs);
//下面這段是查詢函式foo 並執行foo
printf("----------------------\n");
pfunc = pyobject_getattrstring(pmodule, "foo");
if (!pfunc || !pycallable_check(pfunc))
pargs = pytuple_new(1);
pytuple_setitem(pargs, 0, py_buildvalue("l", 2));
pyobject_callobject(pfunc, pargs);
py_decref(pname);
py_decref(pargs);
py_decref(pmodule);
// 關閉python
py_finalize();
return 0;
}
import cp2
def sum(a,b):
cp2.add1(a,b);
return
def foo(a):
print ("in python function foo" )
print ("a = " + str(a) )
print ("ret = " + str(a * a) )
return
def add1(a,b):
print ("in python function add")
print ("a = " + str(a) )
print ("b = " + str(b))
print ("ret = " + str(a+b))
return
問題:使用簡體中文編碼與utf-8不匹配
解決:使用notepad++開啟cpp和py檔案,選擇utf-8編碼,儲存。
問題:can』t find function sum
解決:py檔案和cpp檔案不能以test為名
有點意思!
c 呼叫複雜的python3指令碼
平台 vs2017 python3.7.6 配置 python3.7.0配置 部分 標頭檔案 include main py initialize 創造python虛擬環境初始化if py isinitialized pyrun string import sys 必要步驟 pyrun string...
linux shell 程式設計 10 指令碼中呼叫指令碼
在shell指令碼中呼叫另乙個指令碼的三種不同方法 fork,exec,source 1 fork 呼叫指令碼 fork directory script.sh fork是最普通的,就是直接在指令碼裡面用 directory script.sh來呼叫script.sh這個指令碼.執行的時候開乙個su...
python3 7版本安裝pygame1 9 4
所以如果是python2.7以下版本的需要重新安裝pip 這個 就可以 所以既然pip版本不夠就執行更新命令python m pip install u pip 這樣會把pip的版本自動更新到18.1,就可以安裝3.7版本所有的python外掛程式 接下來去安裝pygame,pygame是以whl檔...