Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.maint.python > #13749 > unrolled thread

Re: Installing data files with pybuild

Started byAndrey Rahmatullin <wrar@debian.org>
First post2021-12-01 18:30 +0100
Last post2021-12-02 02:30 +0100
Articles 4 — 4 participants

Back to article view | Back to linux.debian.maint.python

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: Installing data files with pybuild Andrey Rahmatullin <wrar@debian.org> - 2021-12-01 18:30 +0100
    Re: Installing data files with pybuild Louis-Philippe Véronneau <pollo@debian.org> - 2021-12-01 19:40 +0100
      Re: Installing data files with pybuild Julian Gilbey <jdg@debian.org> - 2021-12-01 22:50 +0100
        Re: Installing data files with pybuild Stefano Rivera <stefanor@debian.org> - 2021-12-02 02:30 +0100

#13749 — Re: Installing data files with pybuild

FromAndrey Rahmatullin <wrar@debian.org>
Date2021-12-01 18:30 +0100
SubjectRe: Installing data files with pybuild
Message-ID<DpBAC-55f-9@gated-at.bofh.it>

[Multipart message — attachments visible in raw view] — view raw

On Wed, Dec 01, 2021 at 04:57:44PM +0000, Julian Gilbey wrote:
> Hello!
> 
> pybuild is magic.  It knows where the build directory is, despite it
> seemingly calling setup.py with no command line arguments specifying
> it!
> 
> But anyway, my actual question is this.  How do I ensure that the data
> files are also copied into the package?
Why do you need this? Does setup.py not install them?

> Only the .py files are currently included in the build; what is the
> best way to include all of the data files after the build step and
> before the test step, and then to ensure they are included in the
> final package?
Apart from fixing setup.py? execute_after_dh_auto_install I guess.

-- 
WBR, wRAR

[toc] | [next] | [standalone]


#13751

FromLouis-Philippe Véronneau <pollo@debian.org>
Date2021-12-01 19:40 +0100
Message-ID<DpCGn-5Gh-13@gated-at.bofh.it>
In reply to#13749

[Multipart message — attachments visible in raw view] — view raw

On 2021-12-01 12 h 28, Andrey Rahmatullin wrote:
> 
>> Only the .py files are currently included in the build; what is the
>> best way to include all of the data files after the build step and
>> before the test step, and then to ensure they are included in the
>> final package?
> Apart from fixing setup.py? execute_after_dh_auto_install I guess.

Or you can use debian/foobar.install to install the missing files in the
right location, and keep your d/rules file cleaner :)

ex. (man dh_install):

https://sources.debian.org/src/sublime-music/0.11.16-1/debian/sublime-music.install/

-- 
  ⢀⣴⠾⠻⢶⣦⠀
  ⣾⠁⢠⠒⠀⣿⡁  Louis-Philippe Véronneau
  ⢿⡄⠘⠷⠚⠋   pollo@debian.org / veronneau.org
  ⠈⠳⣄

[toc] | [prev] | [next] | [standalone]


#13755

FromJulian Gilbey <jdg@debian.org>
Date2021-12-01 22:50 +0100
Message-ID<DpFEd-7qv-1@gated-at.bofh.it>
In reply to#13751
On Wed, Dec 01, 2021 at 01:32:38PM -0500, Louis-Philippe Véronneau wrote:
> On 2021-12-01 12 h 28, Andrey Rahmatullin wrote:
> > 
> >> Only the .py files are currently included in the build; what is the
> >> best way to include all of the data files after the build step and
> >> before the test step, and then to ensure they are included in the
> >> final package?
> > Apart from fixing setup.py? execute_after_dh_auto_install I guess.
> 
> Or you can use debian/foobar.install to install the missing files in the
> right location, and keep your d/rules file cleaner :)
> 
> ex. (man dh_install):
> 
> https://sources.debian.org/src/sublime-music/0.11.16-1/debian/sublime-music.install/

Thanks Andrey and Louis-Philippe!

Yes, that might work, though the build-time tests might still fail as
I think they expect these files to be present at test time.  Since
pybuild uses the library pre-installation to perform the build-time
tests, there might be a problem here.

I don't understand why the files are not correctly installed by
setup.py; it has set include_package_data=True, which includes the
files (and file patterns) listed in MANIFEST.in, but it seems that
this is only used for the bdist and sdist targets of setup.py, but not
for the install target.

There is another possibility, which is to use the --after-build
pybuild option or the PYBUILD_AFTER_BUILD environment variable.  There
is a discussion of this in the scikit-image package here:
https://github.com/scikit-image/scikit-image/issues/4366 which links
to the actual code in debian/rules:
https://salsa.debian.org/science-team/scikit-learn/blob/37a7b4eda8b15f514c6d0f6f801c2d67e35e36c7/debian/rules#L77-84
But I was wondering whether there is a "nicer" way to do it.

Thanks!

   Julian

[toc] | [prev] | [next] | [standalone]


#13757

FromStefano Rivera <stefanor@debian.org>
Date2021-12-02 02:30 +0100
Message-ID<DpJ57-1du-3@gated-at.bofh.it>
In reply to#13755
Hi Julian (2021.12.01_21:47:38_+0000)
> I don't understand why the files are not correctly installed by
> setup.py; it has set include_package_data=True, which includes the
> files (and file patterns) listed in MANIFEST.in, but it seems that
> this is only used for the bdist and sdist targets of setup.py, but not
> for the install target.

Correct, the package_data key needs to be set in setup.py / cfg to
install data in bdist_wheels and install:
https://setuptools.pypa.io/en/latest/userguide/datafiles.html

I would suggest forwarding a patch upstream that does that.

SR

-- 
Stefano Rivera
  http://tumbleweed.org.za/
  +1 415 683 3272

[toc] | [prev] | [standalone]


Back to top | Article view | linux.debian.maint.python


csiph-web