<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, Sans-Serif;font-size:14pt"><div class="" style=""><span class="" style="">> </span><span style="font-size: 16.363636016845703px;" class="">PyPI won’t show metadata for Wheels either unless you upload them with Twine</span></div><div class="" style="color: rgb(0, 0, 0); font-size: 16.363636016845703px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><span style="font-size: 16.363636016845703px;" class=""><br></span></div><div class="" style="color: rgb(0, 0, 0); font-size: 16.363636016845703px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><span style="font-size: 16.363636016845703px;" class="">Why is that, exactly? Is
 there something alternate tools would need to do to achieve the same thing?</span></div><div class="" style="color: rgb(0, 0, 0); font-size: 16.363636016845703px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><span style="font-size: 16.363636016845703px;" class=""><br></span></div><div class="" style="color: rgb(0, 0, 0); font-size: 16.363636016845703px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><span style="font-size: 16.363636016845703px;" class="">Regards,</span></div><div class="" style="color: rgb(0, 0, 0); font-size: 16.363636016845703px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><span style="font-size: 16.363636016845703px;"
 class=""><br></span></div><div class="" style="color: rgb(0, 0, 0); font-size: 16.363636016845703px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><span style="font-size: 16.363636016845703px;" class="">Vinay Sajip</span></div><div class="" style=""><br class="" style=""></div>  <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, Sans-Serif; font-size: 14pt;" class=""> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, Sans-Serif; font-size: 12pt;" class=""> <div dir="ltr" class="" style=""> <hr size="1" class="" style="">  <font size="2" face="Arial" class="" style=""> <b class="" style=""><span style="font-weight:bold;" class="">From:</span></b> Donald Stufft <donald@stufft.io><br class="" style=""> <b class="" style=""><span style="font-weight: bold;"
 class="">To:</span></b> Daniel Holth <dholth@gmail.com> <br class="" style=""><b class="" style=""><span style="font-weight: bold;" class="">Cc:</span></b> Brett Graham <brettgraham@gmail.com>; DistUtils mailing list <distutils-sig@python.org> <br class="" style=""> <b class="" style=""><span style="font-weight: bold;" class="">Sent:</span></b> Thursday, 28 August 2014, 23:11<br class="" style=""> <b class="" style=""><span style="font-weight: bold;" class="">Subject:</span></b> Re: [Distutils] defining requirements on pypi<br class="" style=""> </font> </div> <div class="" style=""><br class="" style=""><div id="yiv1078398780" class="" style=""><div class="" style=""><div class="" style="">PyPI doesn’t parse anything, metadata is passed alongside the file upload. This means that for sdists it would just need modified to communicate that information to PyPI. PyPI won’t show metadata for Wheels either unless you upload them with
 Twine.</div><div class="" style=""><br clear="none" class="" style=""></div><br clear="none" class="" style=""><div class="" style=""><blockquote class="" type="cite" style=""><div class="" id="yiv1078398780yqtfd79518" style=""><div class="" style="">On Aug 28, 2014, at 6:02 PM, Daniel Holth <<a rel="nofollow" shape="rect" class="" ymailto="mailto:dholth@gmail.com" target="_blank" href="mailto:dholth@gmail.com" style="">dholth@gmail.com</a>> wrote:</div><br clear="none" class="" style=""></div><div class="" style=""><div class="" id="yiv1078398780yqtfd84056" style=""><div class="" dir="ltr" style="">Pypi only parses requirements from wheels for display but this doesn't affect installation.</div>
<div class="" style="">On Aug 28, 2014 7:49 AM, "Brett Graham" <<a rel="nofollow" shape="rect" class="" ymailto="mailto:brettgraham@gmail.com" target="_blank" href="mailto:brettgraham@gmail.com" style="">brettgraham@gmail.com</a>> wrote:<br clear="none" class="" style=""><blockquote class="" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="" dir="ltr" style="">Hi,<div class="" style=""><br clear="none" class="" style=""></div><div class="" style="">I feel like these are stupid questions but I cannot seem to find a straight answer.</div><div class="" style=""><br clear="none" class="" style=""></div><div class="" style="">In brief,</div><div class="" style=""><div class="" style=""><br clear="none" class="" style=""></div><div class="" style="">1) what is egg-info/requires.txt used for?</div>


<div class="" style="">2) how do I properly define requirements for pypi?</div></div><div class="" style=""><br clear="none" class="" style=""></div><div class="" style="">The details are:</div><div class="" style=""><br clear="none" class="" style=""></div><div class="" style="">I'm updating some packages on pypi and am having difficulty defining requirements.</div>


<div class="" style=""><br clear="none" class="" style=""></div><div class="" style="">One of the packages in question is: <a rel="nofollow" shape="rect" class="" target="_blank" href="http://pypi.python.org/pypi/jsui" style="">pypi.python.org/pypi/jsui</a></div><div class="" style=""><br clear="none" class="" style=""></div><div class="" style="">I'm initially defining the requirements in a requirements.txt that then gets parsed in setup.py and install_requires gets set to the contents of requirements.txt. Some of the output from python setup.py sdist build is below. The resulting requires.txt in jsui.egg-info is:</div>


<div class="" style=""><br clear="none" class="" style=""></div><div class="" style="">flask</div><div class="" style="">wsrpc</div><div class="" style=""><br clear="none" class="" style=""></div><div class="" style="">However, when I upload this to pypi with "python setup.py sdist upload" I'm not seeing these requirements listed nor does pip installing the package install the requirements.</div>


<div class="" style=""> </div><div class="" style="">Thanks for your help.</div><div class="" style=""><br clear="none" class="" style=""></div><div class="" style="">==== python setup.py sdist build partial output ====</div><div class="" style=""><br clear="none" class="" style=""></div><div class="" style=""><div class="" style="">running sdist</div><div class="" style="">running egg_info</div><div class="" style="">writing requirements to jsui.egg-info/requires.txt</div>


<div class="" style="">writing jsui.egg-info/PKG-INFO</div><div class="" style="">writing top-level names to jsui.egg-info/top_level.txt</div><div class="" style="">writing dependency_links to jsui.egg-info/dependency_links.txt</div><div class="" style="">reading manifest file 'jsui.egg-info/SOURCES.txt'</div>


<div class="" style="">writing manifest file 'jsui.egg-info/SOURCES.txt'</div><div class="" style="">running check</div><div class="" style="">warning: check: missing required meta-data: url</div><div class="" style=""><br clear="none" class="" style=""></div><div class="" style="">creating jsui-0.0.1</div><div class="" style="">creating jsui-0.0.1/jsui</div>


<div class="" style="">creating jsui-0.0.1/jsui.egg-info</div><div class="" style="">making hard links in jsui-0.0.1...</div><div class="" style="">hard linking README -> jsui-0.0.1</div><div class="" style="">hard linking setup.py -> jsui-0.0.1</div><div class="" style="">hard linking jsui/__init__.py -> jsui-0.0.1/jsui</div>


<div class="" style="">hard linking jsui/serve.py -> jsui-0.0.1/jsui</div><div class="" style="">hard linking jsui.egg-info/PKG-INFO -> jsui-0.0.1/jsui.egg-info</div><div class="" style="">hard linking jsui.egg-info/SOURCES.txt -> jsui-0.0.1/jsui.egg-info</div><div class="" style="">


hard linking jsui.egg-info/dependency_links.txt -> jsui-0.0.1/jsui.egg-info</div><div class="" style="">hard linking jsui.egg-info/requires.txt -> jsui-0.0.1/jsui.egg-info</div><div class="" style="">hard linking jsui.egg-info/top_level.txt -> jsui-0.0.1/jsui.egg-info</div>


<div class="" style="">Writing jsui-0.0.1/setup.cfg</div><div class="" style="">Creating tar archive</div><div class="" style="">removing 'jsui-0.0.1' (and everything under it)</div><div class="" style="">running build</div><div class="" style="">running build_py</div></div></div>
<br clear="none" class="" style="">_______________________________________________<br clear="none" class="" style="">
Distutils-SIG maillist  -  <a rel="nofollow" shape="rect" class="" ymailto="mailto:Distutils-SIG@python.org" target="_blank" href="mailto:Distutils-SIG@python.org" style="">Distutils-SIG@python.org</a><br clear="none" class="" style="">
<a rel="nofollow" shape="rect" class="" target="_blank" href="https://mail.python.org/mailman/listinfo/distutils-sig" style="">https://mail.python.org/mailman/listinfo/distutils-sig</a><br clear="none" class="" style="">
<br clear="none" class="" style=""></blockquote></div>
_______________________________________________<br clear="none" class="" style="">Distutils-SIG maillist  -  <a rel="nofollow" shape="rect" class="" ymailto="mailto:Distutils-SIG@python.org" target="_blank" href="mailto:Distutils-SIG@python.org" style="">Distutils-SIG@python.org</a><br clear="none" class="" style=""><a rel="nofollow" shape="rect" class="" target="_blank" href="https://mail.python.org/mailman/listinfo/distutils-sig" style="">https://mail.python.org/mailman/listinfo/distutils-sig</a></div><br clear="none" class="" style=""></div></blockquote></div><br clear="none" class="" style=""><div class="" style="">
<div class="" style="color:rgb(0, 0, 0);letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wrap:break-word;"><div class="" style="color:rgb(0, 0, 0);letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wrap:break-word;"><div class="" style="">---</div><div class="" style="">Donald Stufft</div><div class="" style="">PGP: 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA</div></div></div><div class="" id="yiv1078398780yqtfd57938" style="">
</div></div><div class="" id="yiv1078398780yqtfd47531" style="">
<br clear="none" class="" style=""></div></div></div><br class="" style=""><div class="" id="yqtfd13048" style="">_______________________________________________<br clear="none" class="" style="">Distutils-SIG maillist  -  <a shape="rect" ymailto="mailto:Distutils-SIG@python.org" href="mailto:Distutils-SIG@python.org" class="" style="">Distutils-SIG@python.org</a><br clear="none" class="" style=""><a shape="rect" href="https://mail.python.org/mailman/listinfo/distutils-sig" target="_blank" class="" style="">https://mail.python.org/mailman/listinfo/distutils-sig</a><br clear="none" class="" style=""></div><br class="" style=""><br class="" style=""></div> </div> </div>  </div></body></html>