<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span lang="FR">Hello,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="FR"><o:p> </o:p></span></p>
<p class="MsoNormal">I was talking with Brett Cannon at work today about why “python setup.py install” is called when `--no-cache-dir` is specified instead of python setup.py bdist_wheel in the normal case. He didn't know the answer and suggested I ask here
to see if it's on purpose or just an oversight of when caching was introduced. <o:p>
</o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Basically we have a situation where we tweak a little the bdist_wheel step in our setup.py to take advantage of the “flat” install of pip, and allow easyinstall to work perfectly from the sdist at the same time. Pip install of the sdist
file works like a charm, since as expected pip call bdist_wheel first (and apply our changes):<o:p></o:p></p>
<p class="MsoNormal">> pip install .\azure-common-1.1.4.zip<o:p></o:p></p>
<p class="MsoNormal">Processing d:\vsprojects\azure-sdk-for-python-official\wheelhouse\azure-common-1.1.4.zip<o:p></o:p></p>
<p class="MsoNormal">Building wheels for collected packages: azure-common<o:p></o:p></p>
<p class="MsoNormal"> Running setup.py bdist_wheel for azure-common ... done<o:p></o:p></p>
<p class="MsoNormal"> Stored in directory: C:\Users\lmazuel\AppData\Local\pip\Cache\wheels\4c\3a\10\5e2ef6db79d3785728205a4b5b8348eb41a474ec99505cd865<o:p></o:p></p>
<p class="MsoNormal">Successfully built azure-common<o:p></o:p></p>
<p class="MsoNormal">Installing collected packages: azure-common<o:p></o:p></p>
<p class="MsoNormal">Successfully installed azure-common-1.1.4<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">However, the same call with –no-cache-dir bypasses the bdist_wheel step:<o:p></o:p></p>
<p class="MsoNormal">> pip install --no-cache-dir .\azure-common-1.1.4.zip<o:p></o:p></p>
<p class="MsoNormal">Processing d:\vsprojects\azure-sdk-for-python-official\wheelhouse\azure-common-1.1.4.zip<o:p></o:p></p>
<p class="MsoNormal">Installing collected packages: azure-common<o:p></o:p></p>
<p class="MsoNormal"> Running setup.py install for azure-common ... done<o:p></o:p></p>
<p class="MsoNormal">Successfully installed azure-common-1.1.4<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">It seems to me that pip should always call bdist_wheel, since in theory the wheel building step can be changed to fit the platform (in my understanding of sdist VS egg VS wheel). And so even –no-cache-dir should call bdist_wheel, even if
the wheel is not cached at the end.<o:p></o:p></p>
<p class="MsoNormal">Pip install of the sdist is not our most common situation since our wheels are universals, but I’m still interesting to improve my pip knowledge
<span style="font-family:"Segoe UI Emoji",sans-serif">😊</span> <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">What do you think?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks!<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Laurent<o:p></o:p></p>
</div>
</body>
</html>