pythonの配布可能なpackageの作り方(setuptoolsを使ってhelloコマンドを作ろう)

珍しく技術ネタです。
今日はpythonでsetuptoolsを用いて、配布可能なpackageを作りたいと思います。

やりたいこと

  • ”Hello, world!”と標準出力に表示するhelloというコマンドを作る。
  • 上記を、setuptoolsを用いてPythonの配布可能なpackageで実現する。

環境

構成

root/
 ├ hello/
 │ ├ __init__.py
 │ └ hello.py
 └ setup.py

コード



説明

説明するほどでもないですが、setup.pyの内容について少し付け加えます。
packagesについては、hello.pyのあるpackageであるhelloのみをpackageとして登録しています。
複雑になっていく場合はsetuptoolsのfind_packages()を使ったほうが楽に済ませられます。(参照:Building and Distributing Packages with Setuptools — setuptools 35.0.0 documentation
entry_pointsについては、command名helloをhello package内にあるhello.pyのhello functionと関連付けることで?、commandとしてhelloが実行可能になります。

動かしてみる

packageのbuild&install

> python3 setup.py install
> hello
Hello, world!

packageのbuildのみ

> python3 setup.py sdist
> ls dist
hello-0.0.1.tar.gz

最後に

以上で、helloコマンドが実現可能になりました。
次回はもうpypiにpackageを登録するところをやってみたいと思います。

SFでの最大の敵

サンフランシスコでの最大の敵。それは治安でもなく、食事でもなく、英語でもなく、乾燥

比較的過ごしやすい気候だとは思うのですが、とても乾燥が厳しくて、あまり喉が強くない自分はあっという間に喉がやられてしまいました。。

いつもカリフォルニアに出張で来るときは寝るときもマスクをして、喉に気を遣っているのですが、原因不明の鼻炎も重なってしまい、なかなか辛い状況です。

 

ということで、まさか買うことになることになるとは思っていませんでしたが、買いました。加湿器。英語ではhumidifierと言うんですね。

買ったのはこちら。

www.amazon.com

日本では聞いたことないブランドですけど、評価もまあまあだったのでこれにしました。(すぐ壊れるというレビューが散見されますが、まあSF滞在中だけの予定だったので、そこは目をつぶりました。。そして何より喉の状態が深刻だったので早く欲しかった 笑)

で、到着したのがこれ。大きさは小さめですが、愛らしいデザインの?かわいいやつです。さっそく大活躍してもらっています。

f:id:siro_uma:20170408094245j:plain

1週間程度使っていますが、音も静かですし、加湿具合も良好なようで、お陰様で夜も寝起きも、のどのイガイガなくなりすっきりです。

一時は濡れタオルを部屋に干したりしていましたが、結構面倒だったし湿度もあまり改善されなかったので、加湿器を導入して良かったと思っています。

もし乾燥でお悩みの方がいたらぜひ検討してみてください。

言葉を学ぶということ

SFに来て、言語交換のMeetupに参加するようになって、言語を学ぶ姿勢について考えさせられます。

今日も日本語・英語のLanguage ExchangeのMeetupに参加してきたのですが、自分を含む日本人はやはりなんとなく完璧でない英語に恥じらいを感じ、英語の喋る時間は口数も少なくなりがちです。(もちろん全日本人というわけではないです。)

一方で日本語を学びに来ている多くの外国人の方々は、恥じらうことなく、なんとか自分の話したいことを日本語で表現しようと、たどたどしい日本語でたくさんの言葉をアウトプットします。中にはめちゃくちゃな日本語を喋る方もいるのですが、間違えることを恐れず、積極的に会話に参加し、話題を提供します。その方は昨年の11月から1週間のうち30時間を日本語の勉強に費やしているそうです。

どちらが早くその言語を使えるようになるかは言うまでもありません。

同じ言語を学ぶ人間として、彼らを教師として、少し自分の学習姿勢を見直したいと思います。