natsuの秘密基地です
カレンダー
10 | 2024/11 | 12 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
カテゴリー
プロフィール
HN:
natsu
性別:
男性
趣味:
酒など
自己紹介:
ここに書かれていることはフィクションです。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
引き続き、はまっていくことにする。
PyObjCが動いてるかどうか見る。
pythonをうごかして、
>>>import objc
エラーが出るのでどうも調子が悪い。
sudoせずに
easy_install -UZ pyobjc
easy_install -UZ pyobjc-framework-DictionaryServices
なんか
>>>import objc
は動くようになったけど、
環境がだいぶ汚れているような気がする。
Xcodeでプロジェクトにフレームワークを追加しようとしたら、
pythonのフレームワークが二つ出るし。
これはPythonの2.6.5をいれたからか。
PyObjCを入れたりしたからか。
なんかしたような気がするが思い出せない。
いろいろしすぎた。
でも、きっと、たぶんPyObjC。
とりあえず、もとあったのをリネームしておく。
/System/Library/Frameworks/Python.framework
のやつ。
のやつ。
しかし、PyObjC。
私、英語読めないくせに、サイトのニュースをよく見ると。
私、英語読めないくせに、サイトのニュースをよく見ると。
・PyObjC 2.2 でたよ
・easy_install pyobjc==2.2で入れてね
・py2appは手動でいれてね
・ただし2.2を入れるのはおすすめしないよ
・開発用だし
みたいな。
ベータは外れたけど、
ベータなんですね。
リネームを元に戻し、
新しく入ったっぽいのをリネームする。
/Library/Frameworksのやつ。
自分は超絶にいいかげんだと言わざるを得ない。
よくわかんないものをいいかげんに使ってる。
なんかもう。O型炸裂。
ちなみに部屋はのだめ。
どっかでなんか、いろいろとまとめておく必要があると感じた。
ただし、感じるだけで終わるとも感じた。
ただし、感じるだけで終わるとも感じた。
続く。
PR
結局バンドルって何なのか。
たとえば、リソースのたぐい、イメージ、サウンド、nib(xib?)ファイルは
Resourcesディレクトリにおかれる。
アプリの中で使われる文言を国際化したい場合は、
Resourcesディレクトリの下に*言語*.lprojのついた名前でディレクトリを作る。
まあ、はまったら、ちまちま進むしか無いんです。いつもそうしてきたんです。
ということなんで辛抱しながら先に進むんです。辛いですが。
ちなみに、辛そうで辛くない少し辛いラー油は、
つらそうでつらくない、すこしつらいらーゆ、
って読むらしい。2chのまとめでみた。
勉強になる。
っていうかバンドルって何?って思うわけで。
いろいろ調べる。
すると、
バンドルはディレクトリです。
だって。
それではみもふたもないと思った。
確かに、アプリケーションディレクトリの中に入ってls -alするとみんなdがついてる。
ためしにディレクトリを一つつくって、.appの拡張子をつけると実行できるっぽくなった。
Windowsでもファイルに.exeつければ実行できるっぽくなるけど。
ためしにディレクトリを一つつくって、.appの拡張子をつけると実行できるっぽくなった。
Windowsでもファイルに.exeつければ実行できるっぽくなるけど。
実行しちゃうといいさ。
結局、実行可能ファイルやそこで利用するリソースのたぐいをひとまとめに放り込んだもの。
っていう定義らしい。設定や目録(info.plist)も入ってなきゃいけない。
で、規格化された階層構造でこいつらを保持している。
っていう定義らしい。設定や目録(info.plist)も入ってなきゃいけない。
で、規格化された階層構造でこいつらを保持している。
たとえば、リソースのたぐい、イメージ、サウンド、nib(xib?)ファイルは
Resourcesディレクトリにおかれる。
アプリの中で使われる文言を国際化したい場合は、
Resourcesディレクトリの下に*言語*.lprojのついた名前でディレクトリを作る。
iPhoneやMacOsのアプリやらフレームワークやらプラグインやらはみんなバンドル。
ある種の例外を除いて。
ある種の例外を除いて。
それぞれのアプリケーションはメインバンドルを持っている。
というか、そのディレクトリ自体がメインバンドルというか。
で、メインバンドルはアプリケーションのコードをもっていないといけない。
というか、そのディレクトリ自体がメインバンドルというか。
で、メインバンドルはアプリケーションのコードをもっていないといけない。
メインバンドルはNSBundleのmainBundle関数で取得できる。
そこから、リソースなどのパスなど取得できる。
そこから、リソースなどのパスなど取得できる。
バンドルはバンドルを保持でき、一定の手続きで実行時ロードできる。
これらはprincipal classをもっている。
これはバンドルのエントリーポイントとなる。
NSBundleを使いprincipal classを取得して、
取得したprincipal classからクラスを手に入れたり
オブジェクトを作ったりして使えばいいのだと思う。
これらはprincipal classをもっている。
これはバンドルのエントリーポイントとなる。
NSBundleを使いprincipal classを取得して、
取得したprincipal classからクラスを手に入れたり
オブジェクトを作ったりして使えばいいのだと思う。
Finderはディレクトリ名の拡張子を見ており、
.app、.bundle、.framework、.plugin、.kext
などの拡張子をもつものをバンドルやパッケージと見なす。
.app、.bundle、.framework、.plugin、.kext
などの拡張子をもつものをバンドルやパッケージと見なす。
ということらしいっす。
続く。
py2appを利用すればPythonで書かれたコードをバンドル化することが出来る。
python setup.py py2app
あら不思議。バンドルが出来上がる。
動くかどうかは別にして。
setup.pyは自分で書くことも出来るけど、
自動で生成することも出来る。
py2applet --make-setup Natsu.py
あら不思議。setup.pyが出来上がる。
動くかどうかは別にして。
ちょっと昔に書いたPythonの関数を、Objective Cから呼び出したい。
なんてことは、いつだってあることだと思う。
おもいついちゃう。お風呂に入ってるときとか。
なんてことは、いつだってあることだと思う。
おもいついちゃう。お風呂に入ってるときとか。
そういうとき、Pythonのコードをプラグイン的なバンドルにしておいておけば、
Objective Cで作ったアプリケーションバンドルに放りこめば使えちゃうじゃん。
DLLぽっく。とか考えるのであった。
Objective Cで作ったアプリケーションバンドルに放りこめば使えちゃうじゃん。
DLLぽっく。とか考えるのであった。
自分、Mac初心者なもんで、
普通の人から見たら、もしかしたら変態的な考えなのかもしれないけど。
普通の人から見たら、もしかしたら変態的な考えなのかもしれないけど。
py2appはPythonのスクリプトからアプリケーションバンドルやプラグインを作れる。
って書いてあったので、これを使えばいいじゃん。と思う。
って書いてあったので、これを使えばいいじゃん。と思う。
私ははまり癖があるんだけど、案の定はまった。
ちょっとやそっとじゃ動いてくれない。
普通にアプリケーションバンドルの中にPythonのソースを突っ込んで使った方がいいと思った。
続く。