PythonでMac用アプリを作る

Python学習【365日チャレンジ!】347日目のマスターU(@Udemy11)です。

昨日は久しぶりにぐっすり寝ることができたのですが、やっぱり夜中にトイレに行ってしまいます。

まー、我慢できずにおもらしするよりはましですが、寝て気づいたら朝だったなんてことは、かなり長い間体験した記憶がございません。

年をとってくると、ほんと眠りが浅くなるみたいで、夜中に何度も目を覚ましてしまって困ります。

そんな生理現象にまけないよう、気持ちだけは若く保ちたいものです。

それでは今日も、Python学習を始めましょう。

昨日の復習

昨日は、py2appを使って、Google検索のページからURLとタイトルを抽出してCSVに書き出すMac用アプリがうまくデータを抽出できない原因を探りましたが、結局問題解決できませんでした。

詳しくはこちらの記事をごらんください。

requests.get()で値を取得できていないのが原因のようなので、なにか対処法がないかいろいろとネットで調べてみたことをまとめてみようと思います。

GUIの環境変数

GUIアプリで動かしたときだけ値を取得できないので、そんな症状が起こっている人がいないか調べてみたところ、次のような記事が見つかりました。

これが原因のような気もするのですが、特に環境変数のPathが関係していると思えないんですよね。

あとは、PATHの追加の仕方が記載されているものの、何をどのように変更すればいいのかわかりません。

Chromeが保存しているPATHを指定するのかとも思ったのですが、seleniumのようにchromeを使っているわけじゃないし。。。

libpython3.7.dylib

下記の2つの記事で原因となっているAnacondaが原因のlibpython3.7.dylibが関係しているのかとも考えました。

これらの記事は、アプリの作成段階でエラーが起こっているので、値が抜き出せない原因ではなさそうです。

virtualenv

こちらの記事を読んでいると、MacやWindowsで使えるアプリを作るということが、Pythonのプログラム環境をそのままバイナリ化(0と1のデータにする)することだとわかりました。

なので、.appのパッケージ内には、Pythonの実行環境が入っているということです。

つまり、virtualenvで作成したPythonの実行環境が入っているということなので、その環境を使っているためデータが取得できていない可能性が考えられます。

私が使っているPycharmの環境ではきちんとデータが取得できるので、そのPython環境からアプリを作成すれば問題なく動くかもしれません。

酒井さんの講座では、すでにインストールしている余計なライブラリ等を含んでしまうので、virtualenvを使って必要最小限のライブラリにしてサイズを小さくしていたわけですね。

ということで、virtualenvで環境を作成せずに、私が使っているPython環境を含めてアプリを作成してみたところ、めっちゃ長い時間がかかったにも関わらず、最終的に次のエラーでアプリを作成できず。。。

AttributeError: module 'string' has no attribute 'maketrans'

でも、アプリは出来上がっていました。

PythonでMac用アプリ

ただ、Pythonの実行環境がそのままバイナリ化されているので、サイズが400MB超えになったうえ、試しに立ち上げてみると立ち上がるものの、やっぱりデータは抽出できていない模様。。。

まとめ

ということで、今日も問題の解決には至りませんでした。

とはいえ、なんとなく、Pythonの実行環境に原因があるようなので、そのへんをもう少し調べてみたいと思います。

話は変わりますが、GitHubに興味がわいてきています。

というのが、何度もコードを書き直すのですが、いちいち新しいファイルを作成するのも面倒だし、かと言って以前使っていたコードも見直したいなと思うこともあるので、上書きで更新するのもいまいちなんだよな。と思っていました。

いまさらながらですが、バージョン管理ができるGitを少し勉強してGitHubを導入しようかと思いはじめて今日から少し調べはじめたので、Python学習と並行して、徐々にGitHubを使えるようにしていこうと思います。

それでは、明日もGood Python!