diff --git a/poetry/utils/env.py b/poetry/utils/env.py
index d161634cdc9..dcdec0363bf 100644
--- a/poetry/utils/env.py
+++ b/poetry/utils/env.py
@@ -473,6 +473,10 @@ def create_venv(
cwd = self._poetry.file.parent
env = self.get(reload=True)
+
+ if not env.is_sane():
+ force = True
+
if env.is_venv() and not force:
# Already inside a virtualenv.
return env
@@ -606,6 +610,12 @@ def create_venv(
self.build_venv(str(venv), executable=executable)
else:
if force:
+ if not env.is_sane():
+ io.write_line(
+ "The virtual environment found in {} seems to be broken.".format(
+ env.path
+ )
+ )
io.write_line(
"Recreating virtualenv {}> in {}".format(name, str(venv))
)