zoukankan      html  css  js  c++  java
  • 得当

    装了 VC++ 与 python 后,在环境变量中把PYTHON的INCLUDE和LIBS分别加入下面2个宏 

    INCLUDE 

    LIB 



    请问加入这两个宏到环境变量中的具体步骤? 

    ----------------------------------------------------------------------

    不太清楚... 

    C++可以使用Boost.Python库。boost_python.lib. 
    http://sourceforge.net/index.php 上可以找到boost 
    www.boost.org 也可以上去看看 

    --------------------------------------------------------

    我的电脑 -> 右键属性 -> 高级 -> 环境变量 -> 添加 ||  编辑 

    --------------------------------------------------------

    http://python.cn/pipermail/python-chinese/2005-November/019669.html 

    --------------------------------------------------------

    请问: 
    是要把 python 的 include 文件夹和 libs 文件夹的路径添加到系统变量的 path 变量中吗? 

    或是在系统变量中增加 INCLUDE 和 LIB 两个变量?并填入 include 文件夹和 libs 文件夹的路径? 

    --------------------------------------------------------

    后者 


    --------------------------------------------------------

    我增加了这两个系统变量。 

    我想编译以下代码: 


    #include <Python.h>  

    int main(int argc, char *argv)  

    {  

    Py_Initialize();  

    PyRun_SimpleString("from time import time,ctime\n"  

    "print 'Today is',ctime(time())\n");  

    Py_Finalize();  

    return 0;  

    }  


    根据一个上说:直接用CL 文件名编译就是。 
    这里的CL 是指后缀名吗?vc 不能编译 cl 后缀的文件啊? 



    --------------------------------------------------------


    cl.exe是VC的命令行编译器。 


    --------------------------------------------------------

    我用 VC 编译以上代码, 

    提示: fatal error C1083: Cannot open include file: 'python.h': No such file or directory 

    请问为什么? 

    --------------------------------------------------------

    mark 

    --------------------------------------------------------

    PYTHON 与C相互交互调用实例解析 


    使用前工具: 

    Vc++编译器 

    Python 解释器 

    如没有装VC,可以去微软网站下一个C++的编译器,地址如下: 

    http://download.microsoft.com/download/3/9/b/39bac755-0a1e-4d0b-b72c-3a158b7444c4/VCToolkitSetup.exe 

      

    装完后,在环境变量中把PYTHON的INCLUDE和LIBS分别加入下面2个宏 

    INCLUDE 

    LIB 

      

    1、C中调用PYTHON 

    #include <Python.h>  

    int main(int argc, char *argv)  

    {  

    Py_Initialize();  

    PyRun_SimpleString("from time import time,ctime\n"  

    "print 'Today is',ctime(time())\n");  

    Py_Finalize();  

    return 0;  

    }  

    直接用CL 文件名  编译就是 

      

    2、用C生成DLL,用PYTHON调用 

    C代码:如FOO.C 

    #include <Python.h> 

    /* Define the method table. */ 

    static PyObject *foo_bar(PyObject *self, PyObject *args); 

    static PyMethodDef FooMethods = { 

    {"bar",  foo_bar, METH_VARARGS}, 

    {NULL, NULL} 

    }; 

    /* Here's the initialization function.  We don't need to do anything 

    for our own needs, but Python needs that method table. */ 

    void initfoo() 



    (void) Py_InitModule("foo", FooMethods); 



    /* Finally, let's do something ... involved ... as an example function. */ 

    static PyObject *foo_bar(PyObject *self, PyObject *args) 



    char *string; 

    int   len; 

    if (!PyArg_ParseTuple(args, "s", &string)) 

    return NULL; 

    len = strlen(string); 

    return Py_BuildValue("i", len); 



    C定义文件:foo.def 

    EXPORTS 

    initfoo 

    编译生成foo.dll 

    Cl -c foo.c; 

    link foo.obj /dll /def:foo.def /OUT:foo.dll  

    在PYTHON中调用: 

    Import foo 

    Dir(foo) 

    … 

    即可以看到结果: 

    >>> import foo 

    >>> dir(foo) 



    >>> ^Z 



    --------------------------------------------------------

    我就是参考了这篇文档,想在 C 中调用PYTHON,但用 VC 编译时 

    提示: fatal error C1083: Cannot open include file: 'python.h': No such file or directory 


    --------------------------------------------------------

    你这个问题应该是找不到头文件 
    你可以在工程中把python.h得路径加进去 



    --------------------------------------------------------

    请问 python.h 在 python 2.3 中的完整路径是什么? 

    --------------------------------------------------------

    请问 python.h 在 python 2.3 中的完整路径是什么? 
    是 include 文件夹吗? 

    我已在 vc 的 setting 中设置了 INCLUDE 和 LIB 变量的路径,仍不行? 

    --------------------------------------------------------

    C:\Python24\include 
    这个是我的路径,加进去就可以了 

    --------------------------------------------------------

    我的路径是:  

    E:\计算机\编程工具\Python2.3\include 
    E:\计算机\编程工具\Python2.3\lib 

    我在 VC 6.0 中的 Project -> settings -> Link 的 Object/library modules 中添加了 
    E:\计算机\编程工具\Python2.3\lib 



    在 Tools -> Options -> Dirictories -> show dirictories for -> include files 中添加了 
    E:\计算机\编程工具\Python2.3\include 

    在 Tools -> Options -> Dirictories -> show dirictories for -> Library files 中添加了 
    E:\计算机\编程工具\Python2.3\lib 



    编译时提示: 

    Linking... 
    LINK : fatal error LNK1104: cannot open file "E:\计算机\编程工具\Python2.3\lib.obj" 
    Error executing link.exe. 

    --------------------------------------------------------

    不知哪儿错了?请指点! 

    --------------------------------------------------------

    加错地方了 
    应该是在setting->c/c++ 
    category的下拉菜单,本来是general ,换到preprocessor 
    然后把路径加到addtional include derectories 

    --------------------------------------------------------

    还有,添加LIb要把文件指出来,不是路径 

    --------------------------------------------------------

    把lib直接加到工程试试,我刚才说的路径是加头文件,不是加LIB 

    --------------------------------------------------------

    我已照您说的将 include 添加到 setting->c/c++ 中了。 

    编译时提示: 

    Linking... 
    LINK : fatal error LNK1104: cannot open file "python23_d.lib" 
    Error executing link.exe. 


    请问:"python23_d.lib" 具体该如何添加? 

    --------------------------------------------------------

    你把库加到工程中了么? 

    --------------------------------------------------------

    请问该如何添加到工程中?能详细讲讲吗? 

    --------------------------------------------------------

    在界面左边有一栏,在SOURCE FILES 点右键 add file to folder,找到库文件即可 

    --------------------------------------------------------

    我照您说的,将 /libs/python23 加到 SOURCE FILES 文件夹中,编译后 

    提示: 

    Linking... 
    python23_d.lib : fatal error LNK1136: invalid or corrupt file 
    Error executing link.exe. 

    我在 /libs/ 中只找到 python23.lib,没看到 python23_d.lib 。 

    不知上面的提示是何原因? 

    --------------------------------------------------------

    直接用python23.lib 

    python23_d.lib应该是调试版的 

    --------------------------------------------------------

    set path, 

    你没设备环境变量 

    --------------------------------------------------------

    回楼上两位,我仍未解决问题. 


    --------------------------------------------------------

    你把python23.lib拷贝一份,改名为python23_d.lib就可以了 

    编译过去的问题出在这里: 
    #ifdef _DEBUG 
    #pragma comment(lib,"python24_d.lib")/*这个文件不存在*/ 
    #else 
    #pragma comment(lib,"python24.lib") 

    如果你用vc的预编译,就进入了python24_d.lib 

  • 相关阅读:
    Java 集合系列06之 Vector详细介绍(源码解析)和使用示例
    Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例
    Java 集合系列02之 Collection架构
    Java 集合系列01之 总体框架
    [转载] 散列表(Hash Table) 从理论到实用(下)
    [转载] 散列表(Hash Table)从理论到实用(中)
    [转载] 散列表(Hash Table)从理论到实用(上)
    Android 之窗口小部件高级篇--App Widget 之 RemoteViews
    Android控件之GridView
    红黑树(一)之 原理和算法详细介绍
  • 原文地址:https://www.cnblogs.com/dengyigod/p/2613746.html
Copyright © 2011-2022 走看看