<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Python 3.5.2 (default, Nov 17 2016, 17:05:23) 
[GCC 5.4.0 20160609] on linux
Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.
&gt;&gt;&gt; from requests.packages.urllib3.poolmanager import PoolManager
Traceback (most recent call last):
  File &quot;&lt;stdin&gt;&quot;, line 1, in &lt;module&gt;
ImportError: No module named 'requests.packages'"><pre class="notranslate"><code class="notranslate">Python 3.5.2 (default, Nov 17 2016, 17:05:23) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
&gt;&gt;&gt; from requests.packages.urllib3.poolmanager import PoolManager
Traceback (most recent call last):
  File "&lt;stdin&gt;", line 1, in &lt;module&gt;
ImportError: No module named 'requests.packages'
</code></pre></div>
<p dir="auto">The following import statement used to work for the older version <code class="notranslate">2.14.2</code> but fails for the latest version <code class="notranslate">2.16.0</code></p>
<p dir="auto">Hey so the 2.16.0 release broke all of the vendored things I am assuming. I have <a href="https://github.com/tomchristie/apistar/pull/189" data-hovercard-type="pull_request" data-hovercard-url="/encode/apistar/pull/189/hovercard">issued</a> two <a href="https://github.com/encode/django-rest-framework/pull/5185" data-hovercard-type="pull_request" data-hovercard-url="/encode/django-rest-framework/pull/5185/hovercard">PRs</a> to two frameworks I use that rely on the vendored packages in requests.</p>
<p dir="auto">The <code class="notranslate">changelog</code> was a bit obscure about this</p>
<blockquote>
<p dir="auto">2.16.0<br>
Unvendor ALL the things!</p>
</blockquote>
<p dir="auto">Something like <code class="notranslate">BREAKING CHANGE: Vendor packages have been removed, if you relied on these you will need to modify your code</code> would be nice in a 2.16.1 changelog update maybe?</p>
<p dir="auto">I realize that it can be said these vendored packages are internal and should not be relied on but at least these packages had a use case for using requests and some of the underlying libs and used the vendor packages to ensure everything worked as expected with requests.</p>
<p dir="auto">Anyone who was relying on these will have their code break upon upgrade, so perhaps a bigger version bump would have been welcome, but at least this can be a warning to people coming here wondering why stuff broke. My solution was a <code class="notranslate">compat.py</code> that conditionally imported <code class="notranslate">urllib3</code> (works the same for other vendored packages), see my PRs for that fix.</p>