无法使用 pip 安装 python-krb5

cant install python-krb5 using pip

我正在尝试使用 pip 在 python 中安装 krb5 包。但是,我收到了我根本不理解的错误。我尝试安装像 libkrb5-dev 这样的常用东西,但没有帮助。我在 Ubuntu:

上使用 Python 3.6.9
~# pip3 install python-krb5
Collecting python-krb5
Using cached python-krb5-0.2.tar.gz (14 kB)
Building wheels for collected packages: python-krb5
  Building wheel for python-krb5 (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9y2_z4wf/python-krb5/setup.py'"'"'; __file__='"'"'/tmp/pip-install-9y2_z4wf/python-krb5/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-m6es_1m1
       cwd: /tmp/pip-install-9y2_z4wf/python-krb5/
  Complete output (136 lines):
  running bdist_wheel
  running build
  running build_ext
  building 'krb5' extension
  creating build
  creating build/temp.linux-x86_64-3.6
  x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.6m -c python-krb5.c -o build/temp.linux-x86_64-3.6/python-krb5.o
  python-krb5.c: In function ‘get_default_realm’:
  python-krb5.c:71:12: warning: implicit declaration of function ‘PyString_FromString’; did you mean ‘PyLong_FromString’? [-Wimplicit-function-declaration]
    pyrealm = PyString_FromString(realm);
              ^~~~~~~~~~~~~~~~~~~
              PyLong_FromString
  python-krb5.c:71:10: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
    pyrealm = PyString_FromString(realm);
            ^
  python-krb5.c: In function ‘get_ccache_default_name’:
  python-krb5.c:85:10: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
       name = krb5_cc_default_name(module_context);
            ^
  python-krb5.c:86:12: warning: return makes pointer from integer without a cast [-Wint-conversion]
       return PyString_FromString(name);
              ^~~~~~~~~~~~~~~~~~~~~~~~~
  python-krb5.c: In function ‘initkrb5’:
  python-krb5.c:127:3: warning: ‘return’ with no value, in function returning non-void
     return;
     ^~~~~~
  python-krb5.c:121:16: note: declared here
   PyMODINIT_FUNC initkrb5(void)
                  ^~~~~~~~
  python-krb5.c:129:3: warning: ‘return’ with no value, in function returning non-void
     return;
     ^~~~~~
  python-krb5.c:121:16: note: declared here
   PyMODINIT_FUNC initkrb5(void)
                  ^~~~~~~~
  python-krb5.c:131:11: warning: implicit declaration of function ‘Py_InitModule’; did you mean ‘Py_Initialize’? [-Wimplicit-function-declaration]
    module = Py_InitModule("krb5", krb5_methods);
             ^~~~~~~~~~~~~
             Py_Initialize
  python-krb5.c:131:9: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
    module = Py_InitModule("krb5", krb5_methods);
           ^
  python-krb5.c:134:3: warning: ‘return’ with no value, in function returning non-void
     return;
     ^~~~~~
  python-krb5.c:121:16: note: declared here
   PyMODINIT_FUNC initkrb5(void)
                  ^~~~~~~~
  python-krb5.c:144:3: warning: ‘return’ with no value, in function returning non-void
     return;
     ^~~~~~
  python-krb5.c:121:16: note: declared here
   PyMODINIT_FUNC initkrb5(void)
                  ^~~~~~~~
  x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.6m -c principal.c -o build/temp.linux-x86_64-3.6/principal.o
  principal.c: In function ‘Principal_dealloc’:
  principal.c:162:8: error: ‘Principal {aka struct <anonymous>}’ has no member named ‘ob_type’; did you mean ‘ob_base’?
    self->ob_type->tp_free((PyObject *)self);
          ^~~~~~~
          ob_base
  principal.c: In function ‘Principal_get_name’:
  principal.c:183:12: warning: implicit declaration of function ‘PyString_FromString’; did you mean ‘PyLong_FromString’? [-Wimplicit-function-declaration]
    py_name = PyString_FromString(name);
              ^~~~~~~~~~~~~~~~~~~
              PyLong_FromString
  principal.c:183:10: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
    py_name = PyString_FromString(name);
            ^
  principal.c: In function ‘Principal_get_ccache_name’:
  principal.c:203:16: warning: implicit declaration of function ‘PyString_FromFormat’; did you mean ‘PyBytes_FromFormat’? [-Wimplicit-function-declaration]
    ccache_name = PyString_FromFormat("%s:%s", type, name);
                  ^~~~~~~~~~~~~~~~~~~
                  PyBytes_FromFormat
  principal.c:203:14: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
    ccache_name = PyString_FromFormat("%s:%s", type, name);
                ^
  principal.c: In function ‘Principal_get_service_ticket’:
  principal.c:369:11: warning: implicit declaration of function ‘krb5_get_cred_from_kdc’; did you mean ‘krb5_tkt_creds_free’? [-Wimplicit-function-declaration]
    retval = krb5_get_cred_from_kdc(
             ^~~~~~~~~~~~~~~~~~~~~~
             krb5_tkt_creds_free
  principal.c: At top level:
  principal.c:477:30: warning: missing braces around initializer [-Wmissing-braces]
   PyTypeObject PrincipalType = {
                                ^
  principal.c:480:2: warning: initialization makes integer from pointer without a cast [-Wint-conversion]
    "krb5.Principal",    /* tp_name    */
    ^~~~~~~~~~~~~~~~
  principal.c:480:2: note: (near initialization for ‘PrincipalType.tp_basicsize’)
  principal.c:483:2: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
    (destructor)Principal_dealloc,   /* tp_dealloc    */
    ^
  principal.c:483:2: note: (near initialization for ‘PrincipalType.tp_print’)
  In file included from /usr/include/python3.6m/pytime.h:6:0,
                   from /usr/include/python3.6m/Python.h:77,
                   from principal.c:24:
  /usr/include/python3.6m/object.h:659:29: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
   #define Py_TPFLAGS_DEFAULT  ( \
                               ^
  principal.c:498:2: note: in expansion of macro ‘Py_TPFLAGS_DEFAULT’
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags   */
    ^~~~~~~~~~~~~~~~~~
  /usr/include/python3.6m/object.h:659:29: note: (near initialization for ‘PrincipalType.tp_doc’)
   #define Py_TPFLAGS_DEFAULT  ( \
                               ^
  principal.c:498:2: note: in expansion of macro ‘Py_TPFLAGS_DEFAULT’
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags   */
    ^~~~~~~~~~~~~~~~~~
  principal.c:499:2: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
    "Kerberos Principal object.",   /* __doc__   */
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
  principal.c:499:2: note: (near initialization for ‘PrincipalType.tp_traverse’)
  principal.c:506:2: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
    Principal_methods,    /* tp_methods    */
    ^~~~~~~~~~~~~~~~~
  principal.c:506:2: note: (near initialization for ‘PrincipalType.tp_members’)
  principal.c:507:2: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
    Principal_members,    /* tp_members    */
    ^~~~~~~~~~~~~~~~~
  principal.c:507:2: note: (near initialization for ‘PrincipalType.tp_getset’)
  principal.c:508:2: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
    Principal_getsets,    /* tp_getset    */
    ^~~~~~~~~~~~~~~~~
  principal.c:508:2: note: (near initialization for ‘PrincipalType.tp_base’)
  principal.c:514:2: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
    (initproc)Principal_init,   /* tp_init    */
    ^
  principal.c:514:2: note: (near initialization for ‘PrincipalType.tp_alloc’)
  principal.c:516:2: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
    Principal_new,     /* tp_new    */
    ^~~~~~~~~~~~~
  principal.c:516:2: note: (near initialization for ‘PrincipalType.tp_free’)
  principal.c:477:30: warning: missing braces around initializer [-Wmissing-braces]
   PyTypeObject PrincipalType = {
                                ^
  error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
  ----------------------------------------

错误:python-krb5

的构建轮失败

编辑:我尝试安装全新版本的 python (3.7),然后在尝试使用 python3.7 -m pip install python-krb5 安装时,我得到:krb5.h:没有这样的文件或目录

如果你安装了gcc,可以试试

sudo apt install build-essential

您尝试构建的包最后更新于 2009 年。它根本不兼容 Python 3.