关于python:如何安装six.moves.xmlrpc_client?

how to install six.moves.xmlrpc_client?

我正在从OpenStack复制一些代码片段,但当它运行到:

1
import six.moves.xmlrpc_client as xmlrpclib

我有以下错误:

1
2
    import six.moves.xmlrpc_client as xmlrpclib
ImportError: No module named xmlrpc_client

我已经安装了six软件包。如何解决这个问题?

我正在用Python2.7开发MacOS。

我尝试安装但失败:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
lichaos-MacBook-Pro:common lichao$ sudo pip install --allow-unverified xmlrpclib xmlrpclib
Collecting xmlrpclib
  xmlrpclib is potentially insecure and unverifiable.
  Downloading http://effbot.org/media/downloads/xmlrpclib-1.0.1.zip
Installing collected packages: xmlrpclib
  Running setup.py install for xmlrpclib
    changing mode of build/scripts-2.7/xmlrpc_handler.py from 644 to 755
    changing mode of build/scripts-2.7/xmlrpcserver.py from 644 to 755
    changing mode of build/scripts-2.7/echotest.py from 644 to 755
    changing mode of /usr/local/bin/echotest.py to 755
    changing mode of /usr/local/bin/xmlrpc_handler.py to 755
    changing mode of /usr/local/bin/xmlrpcserver.py to 755
Successfully installed xmlrpclib-1.0.1

$ sudo pip show six
---
Name: six
Version: 1.8.0
Location: /Library/Python/2.7/site-packages
Requires:

但当我运行我的程序时,仍然有同样的错误。如何解决这个问题?


six.moves是一个虚拟命名空间。它提供对在python 2和3之间重命名的包的访问。因此,您不应该安装任何东西。

通过从six.moves.xmlrpc_client导入,开发人员不必处理它在python 2中位于xmlrpclib和python 3中位于xmlrpc.client的情况。请注意,这些是标准库的一部分。

已将映射添加到six版本1.5.0;请确保您具有该版本或更高版本。

Mac附带6个版本1.4.1,预装在/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python中,这将干扰您在site-packages中安装的任何版本(在sys.path中最后列出)。

最好的解决方法是使用virtualenv并安装您自己的six版本,以及您在这个项目中需要的任何其他版本。为新项目创建新的virtualenv。

如果您必须在系统级安装它,那么对于这个特定的项目,您必须删除/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python路径:

1
2
import sys
sys.path.remove('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python')

这将从您的路径中删除各种OS X提供的包,仅用于运行python;苹果会根据自己的需要安装这些包。

  • 谢谢你的回答。我刚尝试使用pip安装xmlrpclib,但失败了,请查看我的更新。你能帮忙吗?顺便说一句,我没有用姜戈。
  • @伊万利:你不需要安装xmlrpclib。它是Python标准库的一部分。
  • @伊万利:你安装了什么东西?
  • 1.1.0版。有关详细信息,请参阅问题中的更新。
  • @伊万利:再说一遍,你不安装xmlrpclib。这不是问题所在。这里的six元路径对象可能有问题,但是您不需要通过安装xmlrpclib来修复它。
  • @伊万利:打开python解释器,运行import six。这样行吗?six.__file__显示什么是进口的?
  • 第六个。uu file_uuu显示'/system/library/frameworks/python.framework/versions/2.7/ex‌&8203;tras/lib/python/six.‌&8203;pyc'
  • @伊万利:那是一个不同于现场软件包的版本。它将被加载,因为它列在site-packages之前。
  • @伊万利:那是Mac系统版本,是1.4.1版。hrmz,让我调查一下。我也在我的系统中看到了它。
  • @伊万利:更新了;你最好的选择是使用virtualenv(它将你与苹果提供的版本隔离开来)。


1
2
pip uninstall six  
pip install six

应该解决这个问题。