<p dir="ltr"><br>
On 12 Feb 2013 06:41, "Erik Bernoth" <<a href="mailto:erik.bernoth@gmail.com">erik.bernoth@gmail.com</a>> wrote:<br>
><br>
> Sorry, I didn't know that this is not part of distutils. In my understanding pip, setup.py and so on is all part of distutils. Should I have asked my question on another mailing list? Then even more thanks for the great help!</p>

<p dir="ltr">Don't worry, this is the right list, there are just multiple projects based on the core distutils that also use it.</p>
<p dir="ltr">Regards,<br>
Nick.</p>
<p dir="ltr">><br>
><br>
> On Mon, Feb 11, 2013 at 8:55 PM, Daniel Holth <<a href="mailto:dholth@gmail.com">dholth@gmail.com</a>> wrote:<br>
>><br>
>> Not really. Install_requires is a setup tools/distribute feature.<br>
>><br>
>> On Feb 11, 2013 2:52 PM, "Erik Bernoth" <<a href="mailto:erik.bernoth@gmail.com">erik.bernoth@gmail.com</a>> wrote:<br>
>>><br>
>>> 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?<br>
>>><br>
>>><br>
>>> On Mon, Feb 11, 2013 at 8:34 PM, Daniel Holth <<a href="mailto:dholth@gmail.com">dholth@gmail.com</a>> wrote:<br>
>>>><br>
>>>> Try install_requires = [ the list you have already without () ] <br>
>>>><br>
>>>> Daniel<br>
>>>><br>
>>>><br>
>>>> On Mon, Feb 11, 2013 at 2:32 PM, Erik Bernoth <<a href="mailto:erik.bernoth@gmail.com">erik.bernoth@gmail.com</a>> wrote:<br>
>>>>><br>
>>>>> I basically follow the tutorial in the distutils docs, which is a little unclear to me in some points.<br>
>>>>><br>
>>>>> If I do as you say it looks like this:<br>
>>>>> --------------------------------------------------------------<br>
>>>>>   [...]<br>
>>>>>     package_dir = { '' : src_path },<br>
>>>>>     requires = [<br>
>>>>>         'pylibssh2==1.0.1',<br>
>>>>>         'pyserial==2.5'<br>
>>>>>     ],provides = [<br>
>>>>>         '{} ({})'.format(project, version)<br>
>>>>>     ]<br>
>>>>>   [...]<br>
>>>>> --------------------------------------------------------------<br>
>>>>> And the result of ``$ python setup.py sdist`` is:<br>
>>>>><br>
>>>>>     [...] # exception stack<br>
>>>>>     ValueError: expected parenthesized list: '==1.0.1'<br>
>>>>><br>
>>>>> That also happens if I add spaces between project name and comparator.<br>
>>>>><br>
>>>>><br>
>>>>> On Mon, Feb 11, 2013 at 8:24 PM, Daniel Holth <<a href="mailto:dholth@gmail.com">dholth@gmail.com</a>> wrote:<br>
>>>>>><br>
>>>>>> This is a common mistake. The parenthesis are a Metadata 1.2+ thing. Omit them for distutils.<br>
>>>>>><br>
>>>>>><br>
>>>>>> On Mon, Feb 11, 2013 at 2:22 PM, Erik Bernoth <<a href="mailto:erik.bernoth@gmail.com">erik.bernoth@gmail.com</a>> wrote:<br>
>>>>>>><br>
>>>>>>><br>
>>>>>>> On Mon, Feb 11, 2013 at 8:07 PM, Daniel Holth <<a href="mailto:dholth@gmail.com">dholth@gmail.com</a>> wrote:<br>
>>>>>>>><br>
>>>>>>>> On Mon, Feb 11, 2013 at 1:10 PM, Erik Bernoth <<a href="mailto:erik.bernoth@gmail.com">erik.bernoth@gmail.com</a>> wrote:<br>
>>>>>>>>><br>
>>>>>>>>> Hi everybody,<br>
>>>>>>>>><br>
>>>>>>>>> I think I pretty much read all of the <a href="http://docs.python.org/2/distutils/">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">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.<br>

>>>>>>>>><br>
>>>>>>>>> I have the same requirements written down in two ways:<br>
>>>>>>>>>  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?<br>

>>>>>>>>><br>
>>>>>>>>>  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">https://github.com/DFE/MONK</a>, if you like):<br>

>>>>>>>>><br>
>>>>>>>>>     $ cd MONK<br>
>>>>>>>>>     $ python setup.py sdist<br>
>>>>>>>>>     $ cd dist<br>
>>>>>>>>>     $ tar xfvz monk_tf-v0.1.1.tar.gz<br>
>>>>>>>>>     $ cd monk_tf-v0.1.1<br>
>>>>>>>>>     $ python setup.py install<br>
>>>>>>>>>     running install<br>
>>>>>>>>>     running build<br>
>>>>>>>>>     running build_py<br>
>>>>>>>>>     running install_lib<br>
>>>>>>>>>     running install_egg_info<br>
>>>>>>>>>     Writing /usr/local/lib/python2.7/dist-packages/monk_tf-v0.1.1.egg-info<br>
>>>>>>>>>     $python<br>
>>>>>>>>>     >> import monk_tf<br>
>>>>>>>>>     (Exception, because a required package can't be found)<br>
>>>>>>>>><br>
>>>>>>>>> So this also didn't seem to install any of the required packages.<br>
>>>>>>>>><br>
>>>>>>>>> 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?<br>

>>>>>>>>><br>
>>>>>>>>> Cheers<br>
>>>>>>>>> Erik<br>
>>>>>>>><br>
>>>>>>>><br>
>>>>>>>> Generally requires.txt is for specific versions of dependencies and the setup.py list is more permissive.<br>
>>>>>>>><br>
>>>>>>>> Try using pip to install your sdist instead of running setup.py directly. <br>
>>>>>>>><br>
>>>>>>><br>
>>>>>>> Hi Daniel,<br>
>>>>>>><br>
>>>>>>> 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.<br>
>>>>>>> From your mail I would interprete that distutils actually should consider the required packages? Maybe I just wrote something incorrectly.<br>
>>>>>>> Does the following look like a correct statements of the requires parameter?<br>
>>>>>>> --------------------------------------------------------------<br>
>>>>>>>   [...]<br>
>>>>>>>     package_dir = { '' : src_path },<br>
>>>>>>>     requires = [<br>
>>>>>>>         'pylibssh2 (==1.0.1)',<br>
>>>>>>>         'pyserial (==2.5)'<br>
>>>>>>>     ],provides = [<br>
>>>>>>>         '{} ({})'.format(project, version)<br>
>>>>>>>     ]<br>
>>>>>>>   [...]<br>
>>>>>>> --------------------------------------------------------------<br>
>>>>>>><br>
>>>>>>> Cheers<br>
>>>>>>> Erik<br>
>>>>>><br>
>>>>>><br>
>>>>><br>
>>>><br>
>>><br>
><br>
><br>
> _______________________________________________<br>
> Distutils-SIG maillist  -  <a href="mailto:Distutils-SIG@python.org">Distutils-SIG@python.org</a><br>
> <a href="http://mail.python.org/mailman/listinfo/distutils-sig">http://mail.python.org/mailman/listinfo/distutils-sig</a><br>
><br>
</p>