diff --git a/cryptography/__init__.py b/cryptography/__init__.py
index 6005361..f27ba85 100644
--- a/cryptography/__init__.py
+++ b/cryptography/__init__.py
@@ -13,8 +13,6 @@
 
 from __future__ import absolute_import, division, print_function
 
-__import__('pkg_resources').declare_namespace(__name__)
-
 from cryptography.__about__ import (
     __author__, __copyright__, __email__, __license__, __summary__, __title__,
     __uri__, __version__
diff --git a/tests/test_fernet.py b/tests/test_fernet.py
index 36e8729..438dc09 100644
--- a/tests/test_fernet.py
+++ b/tests/test_fernet.py
@@ -16,7 +16,6 @@
 import base64
 import calendar
 import json
-import os
 import time
 
 import iso8601
@@ -30,10 +29,10 @@
 from cryptography.hazmat.primitives.ciphers import algorithms, modes
 
 
-def json_parametrize(keys, fname):
-    path = os.path.join(os.path.dirname(__file__), "vectors", "fernet", fname)
-    with open(path) as f:
-        data = json.load(f)
+def json_parametrize(keys, filename):
+    from cryptography import vectors
+    vector_file = vectors.open_vector_file('fernet', filename)
+    data = json.load(vector_file)
     return pytest.mark.parametrize(keys, [
         tuple([entry[k] for k in keys])
         for entry in data
diff --git a/tests/utils.py b/tests/utils.py
index 79996b6..226d64f 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -14,12 +14,11 @@
 from __future__ import absolute_import, division, print_function
 
 import collections
-import os
-
-import pytest
 
 import six
 
+import pytest
+
 
 HashVector = collections.namedtuple("HashVector", ["message", "digest"])
 KeyedHashVector = collections.namedtuple(
@@ -67,11 +66,9 @@
 
 
 def load_vectors_from_file(filename, loader):
-    base = os.path.join(
-        os.path.dirname(__file__), "hazmat", "primitives", "vectors",
-    )
-    with open(os.path.join(base, filename), "r") as vector_file:
-        return loader(vector_file)
+    from cryptography import vectors
+    vector_file = vectors.open_vector_file('hazmat', 'primitives', filename)
+    return loader(vector_file)
 
 
 def load_nist_vectors(vector_data):
