Create __pycache__ dir when the pyc path is explicitly given

Patch from Arfrever Frehtes Taifersar Arahesis.
diff --git a/Lib/compileall.py b/Lib/compileall.py
index ea2ee7f..49c3e6b 100644
--- a/Lib/compileall.py
+++ b/Lib/compileall.py
@@ -93,12 +93,6 @@
             cache_dir = os.path.dirname(cfile)
         head, tail = name[:-3], name[-3:]
         if tail == '.py':
-            if not legacy:
-                try:
-                    os.mkdir(cache_dir)
-                except OSError as error:
-                    if error.errno != errno.EEXIST:
-                        raise
             if not force:
                 try:
                     mtime = int(os.stat(fullname).st_mtime)
diff --git a/Lib/py_compile.py b/Lib/py_compile.py
index 03f2c62..111893e 100644
--- a/Lib/py_compile.py
+++ b/Lib/py_compile.py
@@ -123,11 +123,11 @@
             return
     if cfile is None:
         cfile = imp.cache_from_source(file)
-        try:
-            os.mkdir(os.path.dirname(cfile))
-        except OSError as error:
-            if error.errno != errno.EEXIST:
-                raise
+    try:
+        os.makedirs(os.path.dirname(cfile))
+    except OSError as error:
+        if error.errno != errno.EEXIST:
+            raise
     with open(cfile, 'wb') as fc:
         fc.write(b'\0\0\0\0')
         wr_long(fc, timestamp)