在尝试通过源码安装 Swift 时,遇到了一个 Python 安装程序的错误,错误信息如下:

Traceback (most recent call last):
  File "setup.py", line 22, in <module>
    pbr=True)
  File "/usr/lib/python2.7/distutils/core.py", line 152, in setup
    dist.run_commands()
  File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "/usr/lib/python2.7/dist-packages/setuptools/command/develop.py", line 27, in run
    self.install_for_development()
  File "/usr/lib/python2.7/dist-packages/setuptools/command/develop.py", line 105, in install_for_development
    self.process_distribution(None, self.dist, not self.no_deps)
  File "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", line 692, in process_distribution
    [requirement], self.local_index, self.easy_install
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 576, in resolve
    dist = best[req.key] = env.best_match(req, self, installer)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 821, in best_match
    return self.obtain(req, installer) # try and download/install
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 833, in obtain
    return installer(requirement)
  File "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", line 608, in easy_install
    return self.install_item(spec, dist.location, tmpdir, deps)
  File "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", line 638, in install_item
    dists = self.install_eggs(spec, download, tmpdir)
  File "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", line 828, in install_eggs
    return self.build_and_install(setup_script, setup_base)
  File "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", line 1105, in build_and_install
    self.run_setup(setup_script, setup_base, args)
  File "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", line 1094,   in run_setup
    run_setup(setup_script, args)
  File "/usr/lib/python2.7/dist-packages/setuptools/sandbox.py", line 30, in run_setup
    lambda: execfile(
  File "/usr/lib/python2.7/dist-packages/setuptools/sandbox.py", line 72, in run
    return func()
  File "/usr/lib/python2.7/dist-packages/setuptools/sandbox.py", line 32, in <lambda>
    {'__file__':setup_script, '__name__':'__main__'}
  File "setup.py", line 60, in <module>

File "/usr/lib/python2.7/distutils/core.py", line 152, in setup
    dist.run_commands()
  File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python2.7/distutils/dist.py", line 970, in run_command
    cmd_obj = self.get_command_obj(command)
  File "/usr/lib/python2.7/distutils/dist.py", line 846, in get_command_obj
    cmd_obj = self.command_obj[command] = klass(self)
  File "/usr/lib/python2.7/dist-packages/setuptools/__init__.py", line 70, in __init__
    _Command.__init__(self,dist)
  File "/usr/lib/python2.7/distutils/cmd.py", line 59, in __init__
    raise TypeError, "dist must be a Distribution instance"
TypeError: dist must be a Distribution instance

2、解决方案

以下是解决这个问题的步骤:

  1. 下载 setuptools 0.9.8:
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-0.9.8.tar.gz
  1. 解压 setuptools 0.9.8:
tar zxvf setuptools-0.9.8.tar.gz
  1. 进入 setuptools-0.9.8 目录:
cd setuptools-0.9.8/
  1. 安装 setuptools 0.9.8:
sudo python setup.py install
  1. 返回主目录:
cd
  1. 安装 pip:
sudo easy_install pip
  1. 安装 libffi-dev:
sudo aptitude install libffi-dev
  1. 克隆 Swift Git 仓库:
git clone git@github.com:openstack/swift.git
  1. 进入 Swift 目录:
cd swift/
  1. 安装 Swift:
sudo python setup.py install
  1. 启动 Swift 服务:
sudo swift-init start

代码例子

# 安装 setuptools 0.9.8
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-0.9.8.tar.gz
tar zxvf setuptools-0.9.8.tar.gz
cd setuptools-0.9.8/
sudo python setup.py install

# 安装 pip
cd
sudo easy_install pip

# 安装 libffi-dev
sudo aptitude install libffi-dev

# 克隆 Swift Git 仓库
git clone git@github.com:openstack/swift.git

# 进入 Swift 目录
cd swift/

# 安装 Swift
sudo python setup.py install

# 启动 Swift 服务
sudo swift-init start
```在尝试通过源码安装 Swift 时,遇到了一个 Python 安装程序的错误,错误信息如下:

Traceback (most recent call last):
File “setup.py”, line 22, in
pbr=True)
File “/usr/lib/python2.7/distutils/core.py”, line 152, in setup
dist.run_commands()
File “/usr/lib/python2.7/distutils/dist.py”, line 953, in run_commands
self.run_command(cmd)
File “/usr/lib/python2.7/distutils/dist.py”, line 972, in run_command
cmd_obj.run()
File “/usr/lib/python2.7/dist-packages/setuptools/command/develop.py”, line 27, in run
self.install_for_development()
File “/usr/lib/python2.7/dist-packages/setuptools/command/develop.py”, line 105, in install_for_development
self.process_distribution(None, self.dist, not self.no_deps)
File “/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py”, line 692, in process_distribution
[requirement], self.local_index, self.easy_install
File “/usr/lib/python2.7/dist-packages/pkg_resources.py”, line 576, in resolve
dist = best[req.key] = env.best_match(req, self, installer)
File “/usr/lib/python2.7/dist-packages/pkg_resources.py”, line 821, in best_match
return self.obtain(req, installer) # try and download/install
File “/usr/lib/python2.7/dist-packages/pkg_resources.py”, line 833, in obtain
return installer(requirement)
File “/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py”, line 608, in easy_install
return self.install_item(spec, dist.location, tmpdir, deps)
File “/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py”, line 638, in install_item
dists = self.install_eggs(spec, download, tmpdir)
File “/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py”, line 828, in install_eggs
return self.build_and_install(setup_script, setup_base)
File “/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py”, line 1105, in build_and_install
self.run_setup(setup_script, setup_base, args)
File “/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py”, line 1094, in run_setup
run_setup(setup_script, args)
File “/usr/lib/python2.7/dist-packages/setuptools/sandbox.py”, line 30, in run_setup
lambda: execfile(
File “/usr/lib/python2.7/dist-packages/setuptools/sandbox.py”, line 72, in run
return func()
File “/usr/lib/python2.7/dist-packages/setuptools/sandbox.py”, line 32, in
{‘file’:setup_script, ‘name’:‘main’}
File “setup.py”, line 60, in

File “/usr/lib/python2.7/distutils/core.py”, line 152, in setup
dist.run_commands()
File “/usr/lib/python2.7/distutils/dist.py”, line 953, in run_commands
self.run_command(cmd)
File “/usr/lib/python2.7/distutils/dist.py”, line 970, in run_command
cmd_obj = self.get_command_obj(command)
File “/usr/lib/python2.7/distutils/dist.py”, line 846, in get_command_obj
cmd_obj = self.command_obj[command] = klass(self)
File “/usr/lib/python2.7/dist-packages/setuptools/init.py”, line 70, in init
_Command.init(self,dist)
File “/usr/lib/python2.7/distutils/cmd.py”, line 59, in init
raise TypeError, “dist must be a Distribution instance”
TypeError: dist must be a Distribution instance


## 2、解决方案  
以下是解决这个问题的步骤:
1. 下载 setuptools 0.9.8:

wget https://pypi.python.org/packages/source/s/setuptools/setuptools-0.9.8.tar.gz

2. 解压 setuptools 0.9.8:

tar zxvf setuptools-0.9.8.tar.gz

3. 进入 setuptools-0.9.8 目录:

cd setuptools-0.9.8/

4. 安装 setuptools 0.9.8:

sudo python setup.py install

5. 返回主目录:

cd

6. 安装 pip:

sudo easy_install pip

7. 安装 libffi-dev:

sudo aptitude install libffi-dev

8. 克隆 Swift Git 仓库:

git clone git@github.com:openstack/swift.git

9. 进入 Swift 目录:

cd swift/

10. 安装 Swift:

sudo python setup.py install

11. 启动 Swift 服务:

sudo swift-init start


## 代码例子

安装 setuptools 0.9.8

wget https://pypi.python.org/packages/source/s/setuptools/setuptools-0.9.8.tar.gz
tar zxvf setuptools-0.9.8.tar.gz
cd setuptools-0.9.8/
sudo python setup.py install

安装 pip

cd
sudo easy_install pip

安装 libffi-dev

sudo aptitude install libffi-dev

克隆 Swift Git 仓库

git clone git@github.com:openstack/swift.git

进入 Swift 目录

cd swift/

安装 Swift

sudo python setup.py install

启动 Swift 服务

sudo swift-init start

更多推荐