Telling distutils about requirements
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
On Mon, Feb 11, 2013 at 1:10 PM, Erik Bernoth
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.
On Mon, Feb 11, 2013 at 8:07 PM, Daniel Holth
On Mon, Feb 11, 2013 at 1:10 PM, Erik Bernoth
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.
From your mail I would interprete that distutils actually should consider
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. 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
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
On Mon, Feb 11, 2013 at 8:07 PM, Daniel Holth
wrote: On Mon, Feb 11, 2013 at 1:10 PM, Erik Bernoth
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
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
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
wrote: On Mon, Feb 11, 2013 at 8:07 PM, Daniel Holth
wrote: On Mon, Feb 11, 2013 at 1:10 PM, Erik Bernoth
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
Try install_requires = [ the list you have already without () ]
Daniel
On Mon, Feb 11, 2013 at 2:32 PM, Erik Bernoth
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
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
wrote: On Mon, Feb 11, 2013 at 8:07 PM, Daniel Holth
wrote: On Mon, Feb 11, 2013 at 1:10 PM, Erik Bernoth
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
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?
On Mon, Feb 11, 2013 at 8:34 PM, Daniel Holth
Try install_requires = [ the list you have already without () ]
Daniel
On Mon, Feb 11, 2013 at 2:32 PM, Erik Bernoth
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
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
wrote: On Mon, Feb 11, 2013 at 8:07 PM, Daniel Holth
wrote: On Mon, Feb 11, 2013 at 1:10 PM, Erik Bernoth
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
Not really. Install_requires is a setup tools/distribute feature.
On Feb 11, 2013 2:52 PM, "Erik Bernoth"
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?
On Mon, Feb 11, 2013 at 8:34 PM, Daniel Holth
wrote: Try install_requires = [ the list you have already without () ]
Daniel
On Mon, Feb 11, 2013 at 2:32 PM, Erik Bernoth
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
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
wrote: On Mon, Feb 11, 2013 at 8:07 PM, Daniel Holth
wrote: On Mon, Feb 11, 2013 at 1:10 PM, Erik Bernoth
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
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!
On Mon, Feb 11, 2013 at 8:55 PM, Daniel Holth
Not really. Install_requires is a setup tools/distribute feature. On Feb 11, 2013 2:52 PM, "Erik Bernoth"
wrote: 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?
On Mon, Feb 11, 2013 at 8:34 PM, Daniel Holth
wrote: Try install_requires = [ the list you have already without () ]
Daniel
On Mon, Feb 11, 2013 at 2:32 PM, Erik Bernoth
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
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
wrote: On Mon, Feb 11, 2013 at 8:07 PM, Daniel Holth
wrote: > On Mon, Feb 11, 2013 at 1:10 PM, Erik Bernoth < > erik.bernoth@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
On 12 Feb 2013 06:41, "Erik Bernoth"
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! Don't worry, this is the right list, there are just multiple projects based on the core distutils that also use it. Regards, Nick.
On Mon, Feb 11, 2013 at 8:55 PM, Daniel Holth
wrote: Not really. Install_requires is a setup tools/distribute feature.
On Feb 11, 2013 2:52 PM, "Erik Bernoth"
wrote: Yes, now it works! Thanks a lot! Last but not least, could you point me
On Mon, Feb 11, 2013 at 8:34 PM, Daniel Holth
wrote: Try install_requires = [ the list you have already without () ]
Daniel
On Mon, Feb 11, 2013 at 2:32 PM, Erik Bernoth
wrote:
I basically follow the tutorial in the distutils docs, which is a
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
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
wrote:
> > > On Mon, Feb 11, 2013 at 8:07 PM, Daniel Holth
wrote: >> >> On Mon, Feb 11, 2013 at 1:10 PM, Erik Bernoth < erik.bernoth@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
>>> >>> 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
>>> >>> $ 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
>>> >>> 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
>> > > 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
in the correct direction to add a patch for the distutils documentation, explaining this more clearly? little unclear to me in some points. things that are not so clear from the documentation, with the most important being requirement handling. like): packages that should be installed before my package is installed? directly. parameter?
> -------------------------------------------------------------- > [...] > package_dir = { '' : src_path }, > requires = [ > 'pylibssh2 (==1.0.1)', > 'pyserial (==2.5)' > ],provides = [ > '{} ({})'.format(project, version) > ] > [...] > -------------------------------------------------------------- > > Cheers > Erik
_______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org http://mail.python.org/mailman/listinfo/distutils-sig
participants (3)
-
Daniel Holth
-
Erik Bernoth
-
Nick Coghlan