我正在为python应用程序编写C扩展,并且需要测试特定于python的C代码。为此,我需要将Python.h导入到我的C文件中,但对于我的生活,我无法做到这一点。大多数教程都提出了类似于sudo apt-get python-dev的内容,但我的系统没有apt-get,即使它确实如此,我认为在我的virtualenv中使用dev文件会更好。
知道如何将Python.h引入我的virtualenv吗?
答案 0 :(得分:2)
假设您使用通过自制软件安装MacOSX和Python,
在terminal
中的,你可以找到Python.h:
find /usr/local/Cellar/ -name Python.h
返回我的系统:
/usr/local/Cellar//python/2.7.6/Frameworks/Python.framework/Versions/2.7/include/python2.7/Python.h
答案 1 :(得分:2)
设置环境变量C_INCLUDE_PATH以包含python发行版的目录。
实施例: 1.获取python发行版的include目录
find /usr/local/Cellar/ -name Python.h
这将返回如下内容:
/usr/local/Cellar//python3/3.6.3/Frameworks/Python.framework/Versions/3.6/include/python3.6m/Python.h
现在设置C_INCLUDE_PATH变量:
export C_INCLUDE_PATH="/usr/local/Cellar//python3/3.6.3/Frameworks/Python.framework/Versions/3.6/include/python3.6m/"
答案 2 :(得分:0)
在终端
def param_search(X, y):
Cs = 10. ** np.arange(-3, 4)
gammas = 10. ** np.arange(-3, 3)
rbf_grid = {'clf__C':Cs, 'clf__gamma':gammas, 'clf__kernel':['rbf'],
'clf__class_weight':['balanced']}
lin_grid = {'clf__C':Cs, 'clf__kernel':['linear'],
'clf__class_weight':['balanced']}
pipe = Pipeline([('scaler', StandardScaler()), ('clf', svm.SVC())])
grid_search = GridSearchCV(pipe, param_grid=[rbf_grid, lin_grid],
cv=StratifiedKFold(n_splits=5, shuffle=True), verbose=2, n_jobs=-1)
grid_search.fit(X,y)
return grid_search.best_params_