title: Subprocess.call or Subprocess.Popen cannot use executables that are in PATH (Linux/Windows)
body: <p>I'm writing a programme that needs to run on both Linux and Windows and use executables (with parameters) that exist in the path. (Assumed)</p>
  
  <p>Currently I'm having trouble running executables in windows using Subprocess.Call and Subprocess.Popen.</p>
  
  <p>For a code like this, in windows 8</p>
  
  <pre><code>def makeBlastDB(inFile, inputType, dbType, title, outDir):
      strProg = 'makeblastdb'
      strInput = '-in ' + inFile
      strInputType = '-input_type ' + inputType
      strDBType = '-dbtype ' + dbType
      strTitle = '-title ' + title
      strOut = '-out ' + os.path.join(os.sep, outDir, title)
      cmd = [strProg, strInput, strInputType, strDBType, strTitle, strOut]
      result = Popen(cmd, shell=True)
  </code></pre>
  
  <p>I get the error message in console</p>
  
  <pre><code>'makeblastdb' is not recognized as an internal or external command,
  operable program or batch file.
  </code></pre>
  
  <p>Even though I can run the same command using cmd.exe
  I get the same response with shell=False.</p>
  
  <p>Any ideas on how I can run the command assuming that the executable is in PATH environment variable? Thanks</p>