title: Popen drops keys which don't start with a letter from env
body: <p>I am having difficulty passing some environment variables to a process using <code>Popen</code>. Consider the following code snippet:</p>
  <pre><code>from subprocess import Popen
  
  env = dict()
  env['VALID_VAR'] = 'some value'
  env['1INVALID_VAR'] = 'other value'
  
  proc = Popen(['./test'], env=env)
  </code></pre>
  <p>I'd expect the new process to have both <code>VALID_VAR</code> and <code>1INVALID_VAR</code> as environment variables, but <code>1INVALID_VAR</code> gets dropped.</p>
  <p>My question is why does python drops the key and who could I pass such key to a child process otherwise.</p>
  <h3>System information</h3>
  <p>OS: <code>Ubuntu 17.10</code> <br/>
  Python: <code>3.6.3</code></p>
  <hr />
  <p>For reference this is the code (C) I used to check which variables the child process gets:</p>
  <pre><code>include &lt;stdlib.h&gt;
  
  int main() {
      system(&quot;printenv&quot;);
  }
  </code></pre>