title: Python calling subprocess that requires no virtual environment
body: <p>I have a Python 3.6 script that calls out to a third-party tool using subprocess.</p>
  
  <p><code>main_script.py:</code></p>
  
  <pre><code>#!/usr/bin/env python
  import subprocess
  result = subprocess.run(['third-party-tool', '-arg1'], shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
  </code></pre>
  
  <p>The problem is, <code>main_script.py</code> must be run from within a virtual environment, and <code>third-party-tool</code> must be run from no virtual environment whatsoever.</p>
  
  <p>I don't know much about <code>third-party-tool</code>, except that it is on my path. Calling it while I have a virtual environment active causes it to jam up and throw an exception later on. I do not know if it uses the default python binary or it it spins up its own virtual env and does stuff in there. It is not a Python script, but apparently calls one somehow.</p>
  
  <p><em>How do I tell subprocess to drop out of my virtual environment and run the command in the default shell environment?</em></p>
  
  <p>I've examined a couple of similar questions:</p>
  
  <ul>
  <li><a href="https://stackoverflow.com/questions/8052926/running-subprocess-within-different-virtualenv-with-python">Running subprocess within different virtualenv with python</a> -- In the first case, they are specifying the environment by calling their script with a specific version of Python. <code>third-party-tool</code> is not a Python script (I believe it's bash).</li>
  <li><a href="https://stackoverflow.com/questions/2231227/python-subprocess-popen-with-a-modified-environment">Python subprocess/Popen with a modified environment</a> -- In the second case, they're tweaking existing environment variables, which looks promising, but I want to reset to the default environment, and I'm not sure if I necessarily know which variables I need to clear or reset.</li>
  </ul>