如何在Mac OSX上将python.h导入我的python virtualenv?

时间:2014-06-24 16:38:52

标签: python c python-extensions

我正在为python应用程序编写C扩展,并且需要测试特定于python的C代码。为此,我需要将Python.h导入到我的C文件中,但对于我的生活,我无法做到这一点。大多数教程都提出了类似于sudo apt-get python-dev的内容,但我的系统没有apt-get,即使它确实如此,我认为在我的virtualenv中使用dev文件会更好。

知道如何将Python.h引入我的virtualenv吗?

3 个答案:

答案 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_