Python

django で pdb できないときは django-pdb を install する

ssh クライアントが理由なのかは原因を特定できていないが、django 上の適当な .py ファイルにて import pdb; pdb.set_trace() もしくは breakpoint() # python3.7 以上のみ有効 を埋め込みしても Web サーバーを立ち上げているコンソールで pdb の操作が効…

ubuntu server 20.04 に django をインストールする

pip3 は install している前提である。 $ pip3 install --user Django $ python3 -m django --version 3.0.7 $ cd /path/to/workspace $ django-admin startproject testproject $ cd testproject $ python3 manage.py runserver 0.0.0.0:8080 # GET access …

python の @property が果たす役割

あるメソッドを、読取専用のアトリビュートにする。 class Point: def __init__(self, point_x, point_y): self._point_x = point_x self._point_y = point_y @property def point_x(self): return self._point_x @property def point_y(self): return self.…

__name__ == '__main__' を使う場合

from samplepackage import yourmodule を実行したとき、yourmodule 内のコードはすべて実行される。 例えば samplepackage/yourmodule.py が次のコードで構成されているとする。 def sample_func(): print('hello from sample func.') sample_func() import…

利用しないループ変数はアンダースコアにする

python にて、ループで利用しないループ変数はアンダースコアにする。 決まりではないが、そういった風習がある。 for _ in range(10) print('looping') 参考記事: https://www.datacamp.com/community/tutorials/role-underscore-python https://hackernoon…

内包表記を使って余計な行数を減らす

data_x = [1, 2, 3] data_y = [6, 7, 8] mul_result = [x * y for x in data_x for y in data_y] print(mul_result) => [6, 7, 8, 12, 14, 16, 18, 21, 24] names = ['taro', 'kenji', 'joe'] ages = [25, 30, 18] people = {name: age for (name, age) in z…

ubuntu server 20.04 に pip3 と pipenv を install する

$ sudo apt update $ sudo apt install python3-pip $ pip3 --version pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8) $ cd /path/to/workspace $ pip3 install --user pipenv # ~/.bashrc か ~/.bash_profile に PATH 通して WARN ログ…

ページネートのリソースを1ページずつ巡回し、ページにある各々のリンクへ 1 階層潜り込んでスクレイピングする

http://mat5ukawa.hateblo.jp/entry/2018/06/05/002826 より 各ページを巡回する 巡回ごとに各々のレコード詳細リンクへ 1 階層潜り込む 潜り込み先でスクレイピングする クエリ抽出されたページのレコード探索に利用すれば良いと思う。 import scrapy class…

scrapy ページネート形式のリソースをページ順々にスクレイピングする

レコード一覧をページネートで表現したリソースがあるとする。 ページ毎に固有メッセージ page number is {page number} が存在するので、 全ページ分その取得を試みる。 リソースの想定図 ページ毎に page number is {page number} が存在する ページネート…

scrapy で localhost サーバーのリソースをスクレイピングして parse 結果を json ファイルに出力する

他人のサーバーでテストすることは憚られる 環境 Mac OSX - 10.13.4 Python - 3.6.5 nginx - 1.12.2 scrapy - 1.5.0 localhost サーバー workspace ディレクトリ直下の index.html を改変しておく。 /path/to/nginx/workspace/index.html <html> <head> <style type="text/css"> #caption { colo</style></head></html>…

python 仮想環境 とは

「管理者、システム権限から隔離された Python を実行できる環境」を仮想環境と呼ぶ。 実体的にはディレクトリであり venv ( あるいは env ) と表記される。 その配下には Python バイナリ, pip, 3rd パーティパッケージ などが集約されている。 (厳密な定義…

setup.py の最小構成

python setup.py sdist した時に warning なく dist が出力されること hello world スクリプトすらない 最小というより 骨組み の方が適切かもしれない 試行目的 setup.py の使い方に慣れること 動作確認バージョン Python 2.7.10 MacOSX 10.13.4 ディレクト…

PyPI とは

Python 用の 3rd パーティソフトウェアリポジトリ。 pip はパッケージマネージャであり、PyPI を標準の参照リポジトリとする。 情報参照元: https://en.wikipedia.org/wiki/Python_Package_Index