PythonプロジェクトでMakefileを使用するにはどうすればいいですか?
2236 ワード
Pythonは偉大なプログラム言語であり、その簡単な文法は無数のプログラム猿を引きつけた.しかし、Pythonプロジェクトの構築ツールといえば、あまりよくないようで、Pythonコミュニティの欠陥と言える.
今日はMakefileを活用してPythonプロジェクトの構築体験を向上させる方法を紹介します.
MakefileがCコードをコンパイルするために使われているのではないかと不思議に思う人もいるかもしれません.そしてこれはとても古い道具です.
Makeは最もよく使われる構築ツールで、1977年に誕生し、主にC言語のプロジェクトに使われています.しかし、実際には、ファイルが変化すれば再構築するプロジェクトは、Makeで構築できます.
実際のMakefileスクリプトを使用して、コンストラクションを簡単にする方法を見てみましょう.
説明
このMakefileにより、Pythonプロジェクトを簡単に作成でき、make prepare-devを実行するだけでpythonインフラストラクチャを構築できます.
プロジェクト開発に入るたびにsource project/bin/activateを長く打つ必要はなく、make venvを実行するだけです.
また、実際のプロジェクトの必要に応じてtargetをカスタマイズしてコマンド実行を簡素化することもできます.例:
以上のコマンドにより、dockerデータベースシステムへのログインのネーミングをmake login_に簡略化できます.db.
リファレンス http://www.ruanyifeng.com/blog/2015/02/make.html https://gist.github.com/isaacs/62a2d1825d04437c6f08 https://mathsyouth.github.io/2016/12/29/setuptools
今日はMakefileを活用してPythonプロジェクトの構築体験を向上させる方法を紹介します.
MakefileがCコードをコンパイルするために使われているのではないかと不思議に思う人もいるかもしれません.そしてこれはとても古い道具です.
Makeは最もよく使われる構築ツールで、1977年に誕生し、主にC言語のプロジェクトに使われています.しかし、実際には、ファイルが変化すれば再構築するプロジェクトは、Makeで構築できます.
実際のMakefileスクリプトを使用して、コンストラクションを簡単にする方法を見てみましょう.
.PHONY: help prepare-dev test lint run doc
VENV_NAME?=venv
VENV_ACTIVATE=. $(VENV_NAME)/bin/activate
PYTHON=${VENV_NAME}/bin/python3
.DEFAULT: help
help:
@echo "make prepare-dev"
@echo " prepare development environment, use only once"
@echo "make test"
@echo " run tests"
@echo "make lint"
@echo " run pylint and mypy"
@echo "make run"
@echo " run project"
@echo "make clean"
@echo " clean python cache files"
@echo "make doc"
@echo " build sphinx documentation"
# python
prepare-dev:
sudo apt-get -y install python3.6 python3-pip
python -m venv venv
#
venv: $(VENV_PATH)/bin/activate
source $(VENV_PATH)/bin/activate
test: venv
${PYTHON} -m pytest
lint: venv
${PYTHON} -m pylint
${PYTHON} -m mypy
run: venv
${PYTHON} app.py
clean-pyc:
@find . -name '*.pyc' -delete
@find . -name '__pycache__' -type d | xargs rm -fr
@find . -name '.pytest_cache' -type d | xargs rm -fr
clean:clean-pyc
@echo "## Clean all data."
doc: venv
$(VENV_ACTIVATE) && cd docs; make html
説明
このMakefileにより、Pythonプロジェクトを簡単に作成でき、make prepare-devを実行するだけでpythonインフラストラクチャを構築できます.
プロジェクト開発に入るたびにsource project/bin/activateを長く打つ必要はなく、make venvを実行するだけです.
また、実際のプロジェクトの必要に応じてtargetをカスタマイズしてコマンド実行を簡素化することもできます.例:
login_db:
docker-compose run db bash
以上のコマンドにより、dockerデータベースシステムへのログインのネーミングをmake login_に簡略化できます.db.
リファレンス