stdeb | produce Debian packages from Python packages | Build Tool library
kandi X-RAY | stdeb Summary
kandi X-RAY | stdeb Summary
produce Debian packages from Python packages
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
- Run distutils
- Apply a patch command
- Expand a sdist file
- Expand a tarball
- Run the build command
- Build a source tarball
- Gets the debinfo from the distribution
- Build dpkg buildpackage
- Get the source tarball of a package
- Find the tar archive for a given package
- Wrapper around callable
- Compute the md5sum of a file
- Create a dictionary of default configuration defaults
- Convert a Debian name to a Debian source name
- Convert a name to Debian - style name
- Send XMLrpc request
- Parse a response
- Build the URL
- Run the docker build
- Parse a single value from the config
- Parse configuration values from a section
stdeb Key Features
stdeb Examples and Code Snippets
Community Discussions
Trending Discussions on stdeb
QUESTION
I have a Python Package that requires another package to be installed. That package can be downloaded from someone else's github page. I need to turn my package into a .deb file. I am currently doing this using stdeb. Is it possible to make it so when my deb file is installing, it will also download the files from the git and do a "pip install ." on their setup.py?
...ANSWER
Answered 2020-Sep-16 at 22:40Debian packages are supposed to be self contained. You don't know that when the package is installed that the remote Git server will exist and that it will contain the contents that you want (e.g., they could have been deleted or replaced with malicious contents). You don't even necessarily know that you'll have a network connection at that time.
Even if, in your environment, you do know that, Debian packages don't expect that, so the files you download via Git and generate by using pip
won't be removed by your package, leaving cruft on the user's system. That means that future package installs might break due to this leftover cruft, leading to hard-to-debug errors.
It is possible to do by using a postinst
script, but definitely not a good idea. You'll want to package your dependency in another Debian package or use the existing package from the developer's page instead.
QUESTION
Any documentation I've found about this topic mentions that the "only" requirement to build a deb package is to have a correct setup.py
(and requirements.txt
). For instance in dh-virtualenv tutorial, stdeb documentation and the Debian's library style guide for python.
But nowadays new (amazing) tools like poetry allow to develop (and upload to PyPI) python projects without any setup.py
(this file and several others including requirements.txt
are all replaced by pyproject.toml
). I believe flit allows this too.
I have developed a python project managed by poetry and would like to package it for Ubuntu/Debian. I guess, as a workaround I can still write a setup.py
file that would take its values from pyproject.toml
and a requirements.txt
file (written by hand using values from poetry.lock
).
But, is there a way to do this without any setup.py
file?
ANSWER
Answered 2020-Aug-07 at 22:10setuptools
, and the setup.py
file that it requires, has been the de-facto packaging standard in python for the longest time. The new package managers you mention were enabled by the introduction of PEP 517
and PEP 518
(or read this for a high-level description on the topic), which provide a standardized way of specifying the build backend without the need of a setup.py
(and the ensuing hen-egg problem where you already need setuptools
to correctly parse it).
Anyway, it's all still very fresh, and the linux packaging community hasn't caught up yet. I found no recent discussion regarding debian packages, but the rpm
side sums it up neatly over here.
So, the short answer is to just wait a while, and google debian packaging pep517 support
every now and then.
Until then, you can use dephell
to generate the setup.py
for you as a workaround:
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install stdeb
You can use stdeb like any standard Python library. You will need to make sure that you have a development environment consisting of a Python distribution including header files, a compiler, pip, and git installed. Make sure that your pip, setuptools, and wheel are up to date. When using pip it is generally recommended to install packages in a virtual environment to avoid changes to the system.
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page