# Best practice suggestions (including bootstrap)

**URL:** <https://discuss.python.org/t/best-practice-suggestions-including-bootstrap/12202>\
**Category:** Packaging\
**Created:** [November 25, 2021, 9:58pm UTC](https://discuss.python.org/t/best-practice-suggestions-including-bootstrap/12202 "2021-11-25T21:58:53Z")\
**Posts on this page:** 1\
**Showing post:** 17

<div class="post-metadata">

**Author:** ![brettcannon](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/brettcannon/32/34895_2.png) [@brettcannon](https://discuss.python.org/u/brettcannon)\
**Post date:** [December 14, 2021, 1:55am UTC](https://discuss.python.org/t/best-practice-suggestions-including-bootstrap/12202/17 "2021-12-14T01:55:09Z")

</div>

> [@riastradh](#):
>
> What’s the sequence of commands that one is supposed to execute in the new world order where `python setup.py install` doesn’t work, starting from an sdist, to get the same effect?

```auto
python -m build --outdir ${DESTDIR} .

```

[https://pypa-build.readthedocs.io/](https://pypa-build.readthedocs.io/)

> [@riastradh](#):
>
> And, if the new procedure depends on having foobuilder or bartools or bazutils outside the cpython-3.x distribution, how is one supposed get those built from sdists first?

@FFY00 pointed to their python-bootstrap project in [Best practice suggestions (including bootstrap) - #5 by FFY00](https://discuss.python.org/t/best-practice-suggestions-including-bootstrap/12202/5) . Otherwise wheels are zip files, so you can unpack them and copy files to the appropriate places.

---

_[View the full topic](https://discuss.python.org/t/best-practice-suggestions-including-bootstrap/12202)._
