<p dir="ltr">Not really. Install_requires is a setup tools/distribute feature.</p>
<div class="gmail_quote">On Feb 11, 2013 2:52 PM, "Erik Bernoth" <<a href="mailto:erik.bernoth@gmail.com">erik.bernoth@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Yes, now it works! Thanks a lot! Last but not least, could you point me in the correct direction to add a patch for the distutils documentation, explaining this more clearly?</div><div class="gmail_extra"><br>
<br><div class="gmail_quote">On Mon, Feb 11, 2013 at 8:34 PM, Daniel Holth <span dir="ltr"><<a href="mailto:dholth@gmail.com" target="_blank">dholth@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Try install_requires = [ the list you have already without () ] <br><span><font color="#888888"><br>Daniel<br></font></span></div><div><div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Mon, Feb 11, 2013 at 2:32 PM, Erik Bernoth <span dir="ltr"><<a href="mailto:erik.bernoth@gmail.com" target="_blank">erik.bernoth@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I basically follow the tutorial in the distutils docs, which is a little unclear to me in some points.<div>
<br></div><div>If I do as you say it looks like this:</div><div><div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px">
--------------------------------------------------------------</div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px"> [...]</div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px">
package_dir = { '' : src_path },</div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px"> requires = [</div></div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px">
'pylibssh2==1.0.1',</div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px"> 'pyserial==2.5'</div><div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px">
],provides = [</div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px"> '{} ({})'.format(project, version)</div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px">
]</div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px"> [...]<br></div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px">--------------------------------------------------------------</div>
</div></div><div>And the result of ``$ python setup.py sdist`` is:</div><div><br></div><div> [...] # exception stack</div><div> ValueError: expected parenthesized list: '==1.0.1'<br></div><div>
<br></div><div>That also happens if I add spaces between project name and comparator.</div></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Feb 11, 2013 at 8:24 PM, Daniel Holth <span dir="ltr"><<a href="mailto:dholth@gmail.com" target="_blank">dholth@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">This is a common mistake. The parenthesis are a Metadata 1.2+ thing. Omit them for distutils.<br></div>
<div>
<div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Feb 11, 2013 at 2:22 PM, Erik Bernoth <span dir="ltr"><<a href="mailto:erik.bernoth@gmail.com" target="_blank">erik.bernoth@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><br><div class="gmail_extra"><div class="gmail_quote">On Mon, Feb 11, 2013 at 8:07 PM, Daniel Holth <span dir="ltr"><<a href="mailto:dholth@gmail.com" target="_blank">dholth@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">
<div><div>On Mon, Feb 11, 2013 at 1:10 PM, Erik Bernoth <span dir="ltr"><<a href="mailto:erik.bernoth@gmail.com" target="_blank">erik.bernoth@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Hi everybody,<div><br></div><div>I think I pretty much read all of the <a href="http://docs.python.org/2/distutils/" target="_blank">http://docs.python.org/2/distutils/</a> and started to create a pypi repository for my project (<a href="http://pypi.python.org/pypi/monk_tf" target="_blank">http://pypi.python.org/pypi/monk_tf</a>). Now there are some things that are not so clear from the documentation, with the most important being requirement handling.</div>
<div><br></div><div>I have the same requirements written down in two ways:</div><div> a) a requirements.txt file, which can be called with pip install -r requirements.txt. Yet I don't see any user downloading a requirements.txt file from somewhere, then installing it and only then afterwards getting started with actually installing the package they want to install. Who would do that?</div>
<div><br></div><div> b) requires attribute in the setup function call in setup.py. For some reason pip completely seems to ignore it. I tested the following way (come along with the code from <a href="https://github.com/DFE/MONK" target="_blank">https://github.com/DFE/MONK</a>, if you like):</div>
<div><br></div><div> $ cd MONK</div><div> $ python setup.py sdist</div><div> $ cd dist</div><div> $ tar xfvz monk_tf-v0.1.1.tar.gz</div><div> $ cd monk_tf-v0.1.1</div><div>
$ python setup.py install</div><div><div> running install</div><div> running build</div><div> running build_py</div><div> running install_lib</div><div> running install_egg_info</div><div> Writing /usr/local/lib/python2.7/dist-packages/monk_tf-v0.1.1.egg-info</div>
</div><div> $python</div><div> >> import monk_tf</div><div> (Exception, because a required package can't be found)</div><div><br></div><div>So this also didn't seem to install any of the required packages.</div>
<div><br></div><div>I'd really like to know, what I am doing wrong here. Anybody ideas or suggestions? Is there another way to tell distutils about the packages that should be installed before my package is installed?</div>
<div><br></div><div>Cheers</div><span><font color="#888888"><div>Erik<br></div></font></span></div></blockquote><div><br></div></div></div><div>Generally requires.txt is for specific versions of dependencies and the setup.py list is more permissive.<br>
<br></div><div>Try using pip to install your sdist instead of running setup.py directly. <br></div></div><br></div></div>
</blockquote></div><br></div></div></div><div class="gmail_extra">Hi Daniel,</div><div class="gmail_extra"><br></div><div class="gmail_extra">I also tried ``pip install monk_tf-v0.1.1.tar.gz``, with the same result as using setup.py directly. He installs it but doesn't consider the "requires" list.</div>
<div class="gmail_extra">From your mail I would interprete that distutils actually should consider the required packages? Maybe I just wrote something incorrectly.</div><div class="gmail_extra">Does the following look like a correct statements of the requires parameter?</div>
<div class="gmail_extra">--------------------------------------------------------------</div><div class="gmail_extra"> [...]</div><div class="gmail_extra"> package_dir = { '' : src_path },</div>
<div class="gmail_extra"> requires = [</div><div class="gmail_extra"> 'pylibssh2 (==1.0.1)',</div><div class="gmail_extra"> 'pyserial (==2.5)'</div><div class="gmail_extra"> ],provides = [</div>
<div class="gmail_extra"> '{} ({})'.format(project, version)</div><div class="gmail_extra"> ]</div><div class="gmail_extra"> [...]<br></div><div class="gmail_extra">--------------------------------------------------------------<br>
</div><div class="gmail_extra"><br></div><div class="gmail_extra">Cheers</div><span><font color="#888888"><div class="gmail_extra">Erik</div></font></span></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</blockquote></div>