title: Cython compiler directive language_level not respected
body: <p>I am working with compiler directives for Cython (<a href="http://docs.cython.org/en/latest/src/reference/compilation.html#globally" rel="noreferrer">http://docs.cython.org/en/latest/src/reference/compilation.html#globally</a>).</p>
  
  <pre><code>$ cat temp.pyx
  # cython: language_level=3
  print("abc", "def", sep=" ,") # invalid in python 2
  </code></pre>
  
  <p>Compiling:</p>
  
  <pre><code>$ cythonize -i world_dep.pyx
  Error compiling Cython file:
  ------------------------------------------------------------
  ...
  # cython: language_level=3
  
  
  print("abc", "def", sep=" ,")                      ^
  ------------------------------------------------------------
  
  temp.pyx:4:23: Expected ')', found '='
  </code></pre>
  
  <p>So <em>language_level</em> directive is not getting respected. Thus, cythonize ends up using Python 2 semantics and the error is thrown as the print statement above is invalid in Python 2.</p>
  
  <p>However, including any Python statement makes this work:</p>
  
  <pre><code> $ cat temp.pyx
   # cython: language_level=3
   import os
   print("abc", "def", sep=" ,")
  </code></pre>
  
  <p>Compiling and executing:</p>
  
  <pre><code>$ cythonize -i temp.pyx; python -c "import temp"
  abc, def
  </code></pre>
  
  <p>Any idea how the import statement is making the <em>language_level</em> to be respected?</p>
  
  <p>I have raised this same <a href="https://github.com/cython/cython/issues/2230" rel="noreferrer">issue</a> on the Cython GitHub repository as well?</p>