I got the same error in a newly created environment and I think I found the culprit.

The problem stems from how integration test is executed.

As you can see in `tests/integration/__init__.py` line #21-#24, integration tests are executed by running `CWD/bin/aws` command, and when they are run, module `awscli` is imported not from `CWD/awscli` but from system default module search path.

That's why new test case(added to demonstrate the current problem) fails.

Following hackish code forces integration tests to be executed using `CWD/awscli` module.

```
$ diff --git a/awscli/clidriver.py b/awscli/clidriver.py
index 6a7da73..3e20f96 100644
--- a/awscli/clidriver.py
+++ b/awscli/clidriver.py
@@ -535,3 +535,6 @@ class CLIOperationCaller(object):
             output = self._session.get_variable('output')
         formatter = get_formatter(output, args)
         formatter(operation, response)
+
+if __name__ == '__main__':
+    main()
diff --git a/tests/integration/__init__.py b/tests/integration/__init__.py
index fdde492..d8cca93 100644
--- a/tests/integration/__init__.py
+++ b/tests/integration/__init__.py
@@ -82,6 +82,7 @@ def aws(command, collect_memory=False, env_vars=None,
         aws_command = os.environ['AWS_TEST_COMMAND']
     else:
         aws_command = 'python %s' % AWS_CMD
+        aws_command = 'python -m awscli.clidriver'
     full_command = '%s %s' % (aws_command, command)
     stdout_encoding = _get_stdout_encoding()
     if isinstance(full_command, six.text_type) and not six.PY3:
```

With this patch, I can run tests without error:

```
$ nosetests tests/integration/customizations/s3/test_plugin.py:TestWebsiteConfiguration
.
----------------------------------------------------------------------
Ran 1 test in 4.730s

OK
```