[Distutils] Telling distutils about requirements
Daniel Holth
dholth at gmail.com
Mon Feb 11 20:34:29 CET 2013
Try install_requires = [ the list you have already without () ]
Daniel
On Mon, Feb 11, 2013 at 2:32 PM, Erik Bernoth <erik.bernoth at gmail.com>wrote:
> I basically follow the tutorial in the distutils docs, which is a little
> unclear to me in some points.
>
> If I do as you say it looks like this:
> --------------------------------------------------------------
> [...]
> package_dir = { '' : src_path },
> requires = [
> 'pylibssh2==1.0.1',
> 'pyserial==2.5'
> ],provides = [
> '{} ({})'.format(project, version)
> ]
> [...]
> --------------------------------------------------------------
> And the result of ``$ python setup.py sdist`` is:
>
> [...] # exception stack
> ValueError: expected parenthesized list: '==1.0.1'
>
> That also happens if I add spaces between project name and comparator.
>
>
> On Mon, Feb 11, 2013 at 8:24 PM, Daniel Holth <dholth at gmail.com> wrote:
>
>> This is a common mistake. The parenthesis are a Metadata 1.2+ thing. Omit
>> them for distutils.
>>
>>
>> On Mon, Feb 11, 2013 at 2:22 PM, Erik Bernoth <erik.bernoth at gmail.com>wrote:
>>
>>>
>>> On Mon, Feb 11, 2013 at 8:07 PM, Daniel Holth <dholth at gmail.com> wrote:
>>>
>>>> On Mon, Feb 11, 2013 at 1:10 PM, Erik Bernoth <erik.bernoth at gmail.com>wrote:
>>>>
>>>>> Hi everybody,
>>>>>
>>>>> I think I pretty much read all of the
>>>>> http://docs.python.org/2/distutils/ and started to create a pypi
>>>>> repository for my project (http://pypi.python.org/pypi/monk_tf). Now
>>>>> there are some things that are not so clear from the documentation, with
>>>>> the most important being requirement handling.
>>>>>
>>>>> I have the same requirements written down in two ways:
>>>>> 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?
>>>>>
>>>>> 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 https://github.com/DFE/MONK, if you
>>>>> like):
>>>>>
>>>>> $ cd MONK
>>>>> $ python setup.py sdist
>>>>> $ cd dist
>>>>> $ tar xfvz monk_tf-v0.1.1.tar.gz
>>>>> $ cd monk_tf-v0.1.1
>>>>> $ python setup.py install
>>>>> running install
>>>>> running build
>>>>> running build_py
>>>>> running install_lib
>>>>> running install_egg_info
>>>>> Writing
>>>>> /usr/local/lib/python2.7/dist-packages/monk_tf-v0.1.1.egg-info
>>>>> $python
>>>>> >> import monk_tf
>>>>> (Exception, because a required package can't be found)
>>>>>
>>>>> So this also didn't seem to install any of the required packages.
>>>>>
>>>>> 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?
>>>>>
>>>>> Cheers
>>>>> Erik
>>>>>
>>>>
>>>> Generally requires.txt is for specific versions of dependencies and the
>>>> setup.py list is more permissive.
>>>>
>>>> Try using pip to install your sdist instead of running setup.py
>>>> directly.
>>>>
>>>>
>>> Hi Daniel,
>>>
>>> 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.
>>> From your mail I would interprete that distutils actually should
>>> consider the required packages? Maybe I just wrote something incorrectly.
>>> Does the following look like a correct statements of the requires
>>> parameter?
>>> --------------------------------------------------------------
>>> [...]
>>> package_dir = { '' : src_path },
>>> requires = [
>>> 'pylibssh2 (==1.0.1)',
>>> 'pyserial (==2.5)'
>>> ],provides = [
>>> '{} ({})'.format(project, version)
>>> ]
>>> [...]
>>> --------------------------------------------------------------
>>>
>>> Cheers
>>> Erik
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20130211/9b08d43d/attachment.html>
More information about the Distutils-SIG
mailing list