我正在从 openstack 复制一些代码片段,但是当它运行时:
import six.moves.xmlrpc_client as xmlrpclib
我收到以下错误:
import six.moves.xmlrpc_client as xmlrpclib
ImportError: No module named xmlrpc_client
我已经安装了six
包裹。如何解决这个问题呢?
我正在使用 python 2.7 在 MacOS 上工作。
我尝试安装但失败:
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
is a 虚拟命名空间。它提供对 Python 2 和 3 之间重命名的包的访问。因此,您不应该安装任何东西。
通过导入自six.moves.xmlrpc_client
开发商不必处理其所在位置的情况xmlrpclib https://docs.python.org/2/library/xmlrpclib.html在 Python 2 中,以及xmlrpc.client https://docs.python.org/3/library/xmlrpc.client.html在 Python 3 中。请注意,这些是标准库.
映射已添加到six版本1.5.0 https://bitbucket.org/gutworth/six/src/2828c8c72e975c326722c941c921b6f93498ea22/CHANGES?at=default#cl-135;确保您有该版本或更高版本。
Mac 预装了 6 个版本 1.4.1/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
这会干扰您安装的任何版本site-packages
(在 sys.path 的最后列出)。
最好的解决方法是使用虚拟环境 http://docs.python-guide.org/en/latest/dev/virtualenvs/并安装您自己的版本six
以及该项目所需的任何其他内容。为新项目创建一个新的 virtualenv。
如果您绝对必须在系统级别安装它,那么对于这个特定项目,您必须删除/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
path:
import sys
sys.path.remove('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python')
这将从您的路径中删除 OS X 提供的各种软件包,以便运行 Python;苹果公司根据自己的需要安装这些。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)