MakefileをPythonプロジェクトに追加する理由
物語
「怠惰な人は、それをする簡単な方法を見つけます.」そばBill Gates そして、彼が怠惰な人々に言及したとき、彼も私を同じプールに含めました.あなたは自分自身に尋ねることができる、なぜ私は自分自身について言います.理由は、私が何度も何度も同じことをしているのを発見した時です.そして、あなたがそれを意識していないかもしれない前に、あなたはその繰り返しループに巻き込まれたことを確信しています.
新しいPythonや関連プロジェクトを作成し、作業するとき、私は何度も何度も同じことを繰り返していることに気づくでしょう.
例えば、
virtualenv .venv && source .venv/bin/activate && pip install .
black -l 90 && isort -rc . && flake8 .
pytest -sv . && sphinx-apidoc . -o ./docs -f tests
エンターGNU-Make , このポストでは、私はあなたの使用を活用する方法を示します
Makefile
自動化のため、すべてのグッズを確保する1つの場所に配置され、すべてのシェルコマンドを暗記する必要はありません.TLドクター
を使用して任意のプログラミングプロジェクトを構築する
Makefile
'退屈な仕事のs.方法
以下はジェネリックの例ですMakefile
私は使っている.私は通常、私が必要としない部分を削除し、それを私のプロジェクトの根元に置きます.
< div >
ウォークスルー
実行中のmake
任意のターゲットを使用せずに詳細な使用方法を生成します.私はその中を通らないMakefile
それは十分に文書化されていて、自己説明的ですbr/>
<> P >
クラスをハイライト表示する
$ make
python3 -c "$PRINT_HELP_PYSCRIPT" < Makefile
Please use `make <target>` where <target> is one of
build-image Build docker image from local Dockerfile.
build-cached-image Build cached docker image from local Dockerfile.
bootstrap Installs development packages, hooks and generate docs for development
dist Builds source and wheel package
dev Install the package in development mode including all dependencies
dev-venv Install the package in development mode including all dependencies inside a virtualenv (container).
install Check if package exist, if not install the package
venv Create virtualenv environment on local directory.
run-in-docker Run example in a docker container
clean Remove all build, test, coverage and Python artefacts
clean-build Remove build artefacts
clean-docs Remove docs/_build artefacts, except PDF and singlehtml
clean-pyc Remove Python file artefacts
clean-test Remove test and coverage artefacts
clean-docker Remove docker image
lint Check style with `flake8` and `mypy`
checkmake Check Makefile style with `checkmake`
formatter Format style with `black` and sort imports with `isort`
install-hooks Install `pre-commit-hooks` on local directory [see: https://pre-commit.com]
pre-commit Run `pre-commit` on all files
coverage Check code coverage quickly with pytest
coveralls Upload coverage report to coveralls.io
test Run tests quickly with pytest
view-coverage View code coverage
changelog Generate changelog for current repo
complete-docs Generate a complete Sphinx HTML documentation, including API docs.
docs Generate a single Sphinx HTML documentation, with limited API docs.
pdf-doc Generate a Sphinx PDF documentation, with limited including API docs. (Optional)
< div >
例
プロジェクトの一つhere 例があります.br/>
<> P >
クラスをハイライト表示する
make run-bootstrap
< div >
< tt >上記のコマンドを実行すると、< p/p >
<ウル>
実行中の
make
任意のターゲットを使用せずに詳細な使用方法を生成します.私はその中を通らないMakefile
それは十分に文書化されていて、自己説明的ですbr/><> P >
クラスをハイライト表示する
$ make
python3 -c "$PRINT_HELP_PYSCRIPT" < Makefile
Please use `make <target>` where <target> is one of
build-image Build docker image from local Dockerfile.
build-cached-image Build cached docker image from local Dockerfile.
bootstrap Installs development packages, hooks and generate docs for development
dist Builds source and wheel package
dev Install the package in development mode including all dependencies
dev-venv Install the package in development mode including all dependencies inside a virtualenv (container).
install Check if package exist, if not install the package
venv Create virtualenv environment on local directory.
run-in-docker Run example in a docker container
clean Remove all build, test, coverage and Python artefacts
clean-build Remove build artefacts
clean-docs Remove docs/_build artefacts, except PDF and singlehtml
clean-pyc Remove Python file artefacts
clean-test Remove test and coverage artefacts
clean-docker Remove docker image
lint Check style with `flake8` and `mypy`
checkmake Check Makefile style with `checkmake`
formatter Format style with `black` and sort imports with `isort`
install-hooks Install `pre-commit-hooks` on local directory [see: https://pre-commit.com]
pre-commit Run `pre-commit` on all files
coverage Check code coverage quickly with pytest
coveralls Upload coverage report to coveralls.io
test Run tests quickly with pytest
view-coverage View code coverage
changelog Generate changelog for current repo
complete-docs Generate a complete Sphinx HTML documentation, including API docs.
docs Generate a single Sphinx HTML documentation, with limited API docs.
pdf-doc Generate a Sphinx PDF documentation, with limited including API docs. (Optional)
< div >例
プロジェクトの一つhere 例があります.br/>
<> P >
クラスをハイライト表示する
make run-bootstrap
< div >< tt >上記のコマンドを実行すると、< p/p >
<ウル>
mmphego/face_detection
< P >
< hr/>
さらにあなたの学習:< p/p >
<ウル>
あなたがこのポストに何かについて役に立つか、わからないとわかるならば、コメントを残してください
リファレンス
この投稿は以下のような記事に触発されました.
<ウル>
Reference
この問題について(MakefileをPythonプロジェクトに追加する理由), 我々は、より多くの情報をここで見つけました https://dev.to/mmphego/why-you-should-add-makefile-into-your-python-project-20j2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol