diff --git a/python/Makefile b/python/Makefile
index 7a548e0..d7c4a1b 100644
--- a/python/Makefile
+++ b/python/Makefile
@@ -147,7 +147,15 @@
 containers: base adapter_ponsim_olt adapter_ponsim_onu ofagent cli
 
 base:
+ifdef LOCAL_PYVOLTHA
+	mkdir -p pyvoltha/dist
+	cp ../../pyvoltha/dist/*.tar.gz pyvoltha/dist/
+	mkdir -p voltha-protos/dist
+	cp ../../voltha-protos/dist/*.tar.gz voltha-protos/dist/
+	docker build $(DOCKER_BUILD_ARGS) -t ${REGISTRY}${REPOSITORY}voltha-base:${TAG} -f docker/Dockerfile.base_local .
+else
 	docker build $(DOCKER_BUILD_ARGS) -t ${REGISTRY}${REPOSITORY}voltha-base:${TAG} -f docker/Dockerfile.base .
+endif
 
 adapter_ponsim_olt:
 	docker build $(DOCKER_BUILD_ARGS) -t ${REGISTRY}${REPOSITORY}voltha-adapter-ponsim-olt:${TAG} -f docker/Dockerfile.adapter_ponsim_olt .
@@ -198,6 +206,8 @@
 	rm -f ./protos/*_pb2_grpc.py
 	rm -f ./protos/*.desc
 	rm -f ./protos/*.proto
+	rm -rf pyvoltha
+	rm -rf voltha-protos
 
 distclean: clean
 	rm -rf ${VENVDIR}
@@ -231,6 +241,15 @@
 	        uname -s > ${VENVDIR}/.built; \
 	    fi
 
+ifdef LOCAL_PYVOLTHA
+	mkdir -p pyvoltha/dist
+	cp ../../pyvoltha/dist/*.tar.gz pyvoltha/dist/
+	mkdir -p voltha-protos/dist
+	cp ../../voltha-protos/dist/*.tar.gz voltha-protos/dist/
+	. ${VENVDIR}/bin/activate && \
+	    pip install pyvoltha/dist/*.tar.gz && \
+	    pip install voltha-protos/dist/*.tar.gz
+endif
 
 flake8: $(DIRS_FLAKE8)
 
diff --git a/python/cli/alarm_filters.py b/python/cli/alarm_filters.py
index ed2af32..57a782f 100644
--- a/python/cli/alarm_filters.py
+++ b/python/cli/alarm_filters.py
@@ -24,11 +24,9 @@
 from google.protobuf.empty_pb2 import Empty
 
 from table import print_pb_list_as_table
-from python.protos import third_party
-from python.protos import voltha_pb2
-from python.protos.events_pb2 import AlarmEventType, AlarmEventSeverity, AlarmEventCategory
+from voltha_protos import voltha_pb2
+from voltha_protos.events_pb2 import AlarmEventType, AlarmEventSeverity, AlarmEventCategory
 
-_ = third_party
 
 
 class AlarmFiltersCli(Cmd):
diff --git a/python/cli/device.py b/python/cli/device.py
index 38ea835..484185f 100644
--- a/python/cli/device.py
+++ b/python/cli/device.py
@@ -24,10 +24,8 @@
 
 from table import print_pb_as_table, print_pb_list_as_table
 from utils import print_flows, pb2dict, enum2name
-from python.protos import third_party
 
-_ = third_party
-from python.protos import voltha_pb2, common_pb2
+from voltha_protos import voltha_pb2, common_pb2
 import sys
 import json
 from google.protobuf.json_format import MessageToDict
diff --git a/python/cli/logical_device.py b/python/cli/logical_device.py
index cd991c6..187dd88 100644
--- a/python/cli/logical_device.py
+++ b/python/cli/logical_device.py
@@ -24,11 +24,9 @@
 from table import print_pb_as_table, print_pb_list_as_table
 from utils import pb2dict
 from utils import print_flows, print_groups
-from python.protos import third_party
 from google.protobuf.empty_pb2 import Empty
 
-_ = third_party
-from python.protos import voltha_pb2
+from voltha_protos import voltha_pb2
 
 
 class LogicalDeviceCli(Cmd):
diff --git a/python/cli/main.py b/python/cli/main.py
index 0fc9b5b..0f5c618 100755
--- a/python/cli/main.py
+++ b/python/cli/main.py
@@ -33,12 +33,11 @@
 from alarm_filters import AlarmFiltersCli
 from logical_device import LogicalDeviceCli
 from table import print_pb_list_as_table
-from python.common.openflow.utils import *
-from python.protos import third_party
-from python.protos import voltha_pb2
-from python.protos.openflow_13_pb2 import FlowTableUpdate, FlowGroupTableUpdate
+from pyvoltha.common.openflow.utils import *
+from voltha_protos import voltha_pb2
+from voltha_protos import voltha_pb2_grpc
+from voltha_protos.openflow_13_pb2 import FlowTableUpdate, FlowGroupTableUpdate
 
-_ = third_party
 from python.cli.utils import pb2dict
 
 defs = dict(
@@ -142,7 +141,7 @@
 
     def get_stub(self):
         if self.stub is None:
-            self.stub = voltha_pb2.VolthaServiceStub(self.get_channel())
+            self.stub = voltha_pb2_grpc.VolthaServiceStub(self.get_channel())
             # self.stub = \
             #     voltha_pb2.VolthaGlobalServiceStub(self.get_channel()) \
             #         if self.global_request else \
diff --git a/python/cli/omci.py b/python/cli/omci.py
index d8b8334..95768c8 100644
--- a/python/cli/omci.py
+++ b/python/cli/omci.py
@@ -23,13 +23,11 @@
 from datetime import datetime
 from google.protobuf.empty_pb2 import Empty
 from table import print_pb_list_as_table
-from python.protos import third_party
-from python.protos import voltha_pb2
-from python.protos.omci_mib_db_pb2 import MibDeviceData, MibClassData, \
+from voltha_protos import voltha_pb2
+from voltha_protos.omci_mib_db_pb2 import MibDeviceData, MibClassData, \
     MibInstanceData
 from os import linesep
 
-_ = third_party
 
 
 class OmciCli(Cmd):
diff --git a/python/docker/Dockerfile.base_local b/python/docker/Dockerfile.base_local
new file mode 100644
index 0000000..b71627b
--- /dev/null
+++ b/python/docker/Dockerfile.base_local
@@ -0,0 +1,43 @@
+# Copyright 2016 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+FROM ubuntu:xenial
+
+MAINTAINER Voltha Community <info@opennetworking.org>
+
+# Update to have latest images
+RUN apt-get update && \
+    apt-get install -y python python-pip openssl iproute2 libpcap-dev wget
+
+COPY requirements.txt /tmp/requirements.txt
+
+# pip install cython enum34 six && \
+# Install app dependencies
+RUN wget https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64.deb && \
+    dpkg -i *.deb && \
+    rm -f *.deb && \
+    apt-get update && \
+    apt-get install -y wget build-essential make gcc binutils python-dev libffi-dev libssl-dev git && \
+    pip install -r /tmp/requirements.txt
+
+# Install local pyvoltha
+COPY pyvoltha/dist /pyvoltha/dist
+RUN pip install /pyvoltha/dist/*.tar.gz
+
+# Install local voltha-protos
+COPY voltha-protos/dist /voltha-protos/dist
+RUN pip install /voltha-protos/dist/*.tar.gz
+
+RUN apt-get purge -y wget build-essential make gcc binutils python-dev libffi-dev libssl-dev git && \
+    apt-get autoremove -y
diff --git a/python/docker/Dockerfile.cli b/python/docker/Dockerfile.cli
index 2c4fd45..4e2d925 100644
--- a/python/docker/Dockerfile.cli
+++ b/python/docker/Dockerfile.cli
@@ -23,17 +23,10 @@
 # Bundle app source
 RUN mkdir /voltha && touch /voltha/__init__.py
 ENV PYTHONPATH=/voltha
-COPY common /voltha/python/common/
 COPY cli /voltha/python/cli
 RUN touch /voltha/python/__init__.py
 RUN touch /voltha/python/cli/__init__.py
 
-# Copy in the generated GRPC proto code
-COPY --from=protos /protos/voltha /voltha/python/protos
-COPY --from=protos /protos/google/api /voltha/python/protos/third_party/google/api
-COPY protos/third_party/__init__.py /voltha/python/protos/third_party
-RUN touch /voltha/python/protos/__init__.py
-RUN touch /voltha/python/protos/third_party/google/__init__.py
 
 # Setup the voltha user
 RUN useradd -b /home -d /home/voltha voltha -s /bin/bash
diff --git a/python/requirements.txt b/python/requirements.txt
index 56cb356..d6dd15d 100644
--- a/python/requirements.txt
+++ b/python/requirements.txt
@@ -28,7 +28,7 @@
 pcapy==0.11.1
 pep8==1.7.1
 pep8-naming>=0.3.3
-protobuf==3.3.0
+protobuf==3.6.1
 protobuf-to-dict==0.1.0
 pyflakes==1.6.0
 pylint==1.7.6
@@ -60,6 +60,8 @@
 etcd3==0.7.0
 pyparsing==2.2.0
 packaging==17.1
+pyvoltha==0.1.7
+voltha-protos==0.1.0
 
 # python-consul>=0.6.1  we need the pre-released version for now, because 0.6.1 does not
 # yet support Twisted. Once this is released, it will be the 0.6.2 version
