$(IMAGES_DIR)/%.img:   $(SRC_PATH)/tests/vm/% \
                        $(SRC_PATH)/tests/vm/basevm.py \
-                       $(SRC_PATH)/tests/vm/Makefile.include
+                       $(SRC_PATH)/tests/vm/Makefile.include \
+                       check-venv
        @mkdir -p $(IMAGES_DIR)
        $(call quiet-command, \
-               $(PYTHON) $< \
+               $(TESTS_PYTHON) $< \
                $(if $(V)$(DEBUG), --debug) \
                $(if $(GENISOIMAGE),--genisoimage $(GENISOIMAGE)) \
                $(if $(QEMU_LOCAL),--build-path $(BUILD_DIR)) \
 
 
 # Build in VM $(IMAGE)
-vm-build-%: $(IMAGES_DIR)/%.img
+vm-build-%: $(IMAGES_DIR)/%.img check-venv
        $(call quiet-command, \
-               $(PYTHON) $(SRC_PATH)/tests/vm/$* \
+               $(TESTS_PYTHON) $(SRC_PATH)/tests/vm/$* \
                $(if $(V)$(DEBUG), --debug) \
                $(if $(DEBUG), --interactive) \
                $(if $(J),--jobs $(J)) \
                -device virtio-net-pci,netdev=vnet \
        || true
 
-vm-boot-ssh-%: $(IMAGES_DIR)/%.img
+vm-boot-ssh-%: $(IMAGES_DIR)/%.img check-venv
        $(call quiet-command, \
-               $(PYTHON) $(SRC_PATH)/tests/vm/$* \
+               $(TESTS_PYTHON) $(SRC_PATH)/tests/vm/$* \
                $(if $(J),--jobs $(J)) \
                $(if $(V)$(DEBUG), --debug) \
                $(if $(QEMU_LOCAL),--build-path $(BUILD_DIR)) \
 
 import logging
 import time
 import datetime
-sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'python'))
-from qemu.machine import QEMUMachine
-from qemu.utils import get_info_usernet_hostfwd_port, kvm_available
 import subprocess
 import hashlib
 import argparse
 import traceback
 import shlex
 
+from qemu.machine import QEMUMachine
+from qemu.utils import get_info_usernet_hostfwd_port, kvm_available
+
 SSH_KEY_FILE = os.path.join(os.path.dirname(__file__),
                "..", "keys", "id_rsa")
 SSH_PUB_KEY_FILE = os.path.join(os.path.dirname(__file__),