我正在尝试通过以下命令通过 pip 在 Centos 7 虚拟机上安装 openstack 客户端:
pip install python-openstackclient
在安装结束时,我收到此错误:
Command "/usr/bin/python3.4 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-noqgbvv4/netifaces/setup.py';f=getattr(tokenize, 'open', open)(_file_);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, _file_, 'exec'))" install --record /tmp/pip-eyssu5xp-record/install-record.txt
--single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-noqgbvv4/netifaces/
任何人都可以帮助我并解释问题出在哪里,因为错误消息对我来说不是很清楚。
我用 kubuntu 在我的个人 PC 上安装了 openstack 客户端,它可以正常工作。
编辑:我使用 --log 选项运行 pip 。这是最后一个例外
Exception information:
Traceback (most recent call last):
File "/usr/lib/python3.4/site-packages/pip/basecommand.py", line 215, in main
status = self.run(options, args)
File "/usr/lib/python3.4/site-packages/pip/commands/install.py", line 342, in run
prefix=options.prefix_path,
File "/usr/lib/python3.4/site-packages/pip/req/req_set.py", line 784, in install
**kwargs
File "/usr/lib/python3.4/site-packages/pip/req/req_install.py", line 878, in install
spinner=spinner,
File "/usr/lib/python3.4/site-packages/pip/utils/__init__.py", line 707, in call_subprocess
% (command_desc, proc.returncode, cwd))
pip.exceptions.InstallationError: Command "/usr/bin/python3.4 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-07sbmmn8/netifaces/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-u60jwjmb-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-07sbmmn8/netifaces/
默认情况下,CentOS 7 仅附带 Python 2.7,因此使用 pip 而不是 pip3 只能从 Python 2.7 构建。
您需要启用 EPEL 存储库,然后安装 Python 3.4,然后获取 pip3。
然后回去跑
我为你做了一些额外的挖掘,结果发现 OpenStack 有一个 CentOS 存储库(这并不奇怪,因为 RedHat 基本上拥有 OpenStack)。所以你真的需要做
最后一个帮助您在 CentOS 上管理 SELinux。但是,知道如何在您的 CentOS VM 上获取 Python 3.4 并且您必须为 Python 3 pip 包使用 pip3 仍然很好。
通过安装
python-devel
和解决gcc
。@Karaface 的回答也是正确的。这两种方式现在都可以正常工作。谢谢你。