【问题标题】:Installing requests-kerberos on Windows在 Windows 上安装 requests-kerberos
【发布时间】:2015-04-30 13:03:33
【问题描述】:

有没有办法在 Windows 上安装 requests-kerberos?

当我尝试使用 pip 安装它时,出现以下错误:

py -m pip install requests-kerberos

ImportError: No module named 'commands'
Command "python setup.py egg_info" failed with error code 1 in C:\Users\user1\AppData\Local\Temp\pip-build-n8s_inn\kerberos

如果有人知道另一个 kerberos 模块,我将不胜感激。我正在使用 Python 3.4 和 Windows 8。

最好的问候。

【问题讨论】:

    标签: python kerberos


    【解决方案1】:

    commands module 在 python 2.6 中已弃用。

    因此,问题似乎是您的pip 安装问题,而不是requests-kerberos

    您可以尝试一些事情,但我会专注于确保 pip 正常工作。虽然您可以手动安装软件包,但实际上只是将 pip 问题推到了下一次安装软件包时。

    确保 pip 安装正确。

    使用 pip 命令确保您在 python 3.4 上下文中运行 pip:(注意,这是我的输出,您的输出会有所不同,因为您在 Windows 上并运行 3.4)

    $ pip --version
    pip 1.5.6 from /Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg (python 2.7)
    

    更多关于 pip 的信息可以在here找到。

    手动下载安装

    pypi repo手动下载包。

    • 下载.tar.gz
    • 解压 tar.gz 并运行 python setup.py install

    【讨论】:

    • 感谢您的回答@amccormack。看来我的输出版本与我当前的 python 版本(3.4)不匹配:$ py -m pip --version => pip 6.1.1 from C:\Users\user1\AppData\Local\Programs\Python\Python35-32\lib\site-packages <python 3.5>。此外,我尝试手动安装软件包,但出现以下错误:File setup.py, line 39, in get_version return matches[0].group<1> TypeError: 'filter' object is not subscriptable,我做错了什么? :(
    • @bobafett 您的py 链接到什么?根据您的--version 输出,pip 正在 Python3.5 目录中使用,但在您的问题中,您说您使用的是 Python3.4。你试过用 Python3.4 安装吗?
    • 嗨@amccormack。感谢您的回答。我的 py 链接到 Python 3.5.0a4 $ py --version Python 3.5.0a4。这台机器上似乎安装了 Python 3.5 和 Python 3.4.3。我尝试使用 Python3.4 和 Python 3.5 安装它,但两者都出现相同的错误:File setup.py, line 39, in get_version return matches[0].group<1> TypeError: 'filter' object is not subscriptable。我不知道我应该怎么做才能解决这个问题。
    • @bobafett 所以我查看了setup.py 中的第 39 行。导致该错误是因为filter 函数在 python 2 和 python 3 中的工作方式不同。有关更多信息,请参阅this post。您可以尝试修复 setup.py 文件,但我猜如果安装在 python 3 中不起作用,则可能还有其他错误。我会尝试用 python 2.7 安装它。您可能想在requests-kerberos github page 上发布问题
    • 这就是问题所在!非常感谢amccormack!!!我终于用matches = list(filter(lambda x: x, map(reg.match, fd)))替换了这条指令:matches = filter(lambda x: x, map(reg.match, fd)),以获取列表并解决问题。再次感谢:D
    猜你喜欢
    • 2014-02-16
    • 2015-08-12
    • 2020-08-15
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 2014-06-26
    • 2016-06-05
    • 2013-12-25
    相关资源
    最近更新 更多