問題タブ [pyobjc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
408 参照

python - OS X 10.6.3 Snow LeopardのPythonでobjをインポートできません-libiconv.2.dylib?

OS X 10.6.3 Snow Leopard

-私は何をする必要がありますか?

0 投票する
1 に答える
885 参照

python - SnowLeopard のデフォルト以外の python インストールに pyobjc をインストールする方法

SnowLeopard に pyobjc をインストールする際に問題が発生しています。

Python 2.6 が付属していましたが、2.5 が必要なので、2.5 を正常にインストールしました。その後、xcodeをインストールしました。その後、「easy_install-2.5 pyobjc」でpyobjcをインストールしました

しかし、Python 2.5 を起動して cmd 行から Foundation をインポートしようとすると、「Foundation という名前のモジュールがありません」と表示されます

Pythonインタープリターを開始する前にやろうとしまし export PYTHONPATH="/Library/Python/2.5/site-packages/pyobjc_core-2.2-py2.5-macosx-10.6-i386.egg/objc" たが、まだ運がありません(この.eggディレクトリはpyobjcのインストールが行われた唯一のディレクトリであり、サイトパッケージにはさらにいくつかの卵ファイルがあります... objcサブディレクトリにはinit .pyファイルがあります)

もちろん、2.6 からはすべて正常に動作します。何が問題なのか、どうすればよいのかを知るにはどうすればよいですか?

Python 2.6 から sys.modules を印刷すると、インポートされる objc は基本的に同じインストール場所からのものであることがわかります "/Library/Python/2.6/site-packages/pyobjc_core-2.2-py2.6-macosx-10.6-universal.egg /objc/」なので、なぜ 2.5 で動作しないのでしょうか?

0 投票する
1 に答える
2840 参照

macos - Mac OS X 10.6.3 で PDF を保存する際に Quartz フィルタを適用する

Mac OS X API を使用して、Quartz フィルタを適用した PDF ファイルを保存しようとしています。これは、プレビュー アプリケーションの [名前を付けて保存] ダイアログから可能です。これまでのところ、次のコードを作成しました (Python と pyObjC を使用していますが、私にとっては重要ではありません)。

-- filter-pdf.py: 開始

-- filter-pdf.py: 終了

残念ながら、フィルター「ブルー トーン」が適用されていないため、出力 PDF は入力 PDF とまったく同じように見えます。

質問: 私が見逃したものは何ですか? フィルターを適用するには?

まあ、ドキュメンテーションは、「fdict」を作成して使用するそのような方法でフィルターが適用されることを約束していません。しかし、以前のバージョンの Mac で配布されていたサンプル コード /Developer/Examples/Quartz/Python/filter-pdf.py を (できる限り) 書き直しました (一方、このコードも機能しません)。

----- filter-pdf-old.py: 開始

----- filter-pdf-old.py: 終了

================================================== =====================

答えに基づく作業コード:

0 投票する
1 に答える
478 参照

python - iTunesアプリケーションへのpyobjアクセス

ApplescriptエディターでiTunes用に辞書を開くことができたとしましょう:

代替テキスト

Python と pyobjc を使用して「検索」コマンドにアクセスするにはどうすればよいですか?

以下を使用して iTunes アプリケーションを取得できることはわかっています。

iTunes = SBApplication.applicationWithBundleIdentifier_("com.apple.iTunes")

しかし、それを実行した後、返された辞書に検索コマンドがdir表示されません。助けてください!

0 投票する
1 に答える
322 参照

python - Python で PyObjC を使用して CGImageRef を再解釈する

タイトルに要約するには少し複雑なことをしているので、ご容赦ください。

特殊な画像操作機能を提供する C++ ライブラリへのインターフェイスを提供する Python モジュールを作成しています。Python から CGImageRefs としてイメージ バッファにアクセスできると便利です。そのため、Quartz を使用して (PyObjC を使用するとうまく機能します)、さらに操作できます。

したがって、次のように、独自の画像バッファーから CGImageRef 表現を提供する C++ 関数があります。

CGImageRef CreateCGImageRefForImageBuffer(shared_ptr<ImageBuffer> buffer);

Boost::Python を使用して Python ブリッジを作成しています。Python から CGImageRef を使用できるように、この関数をエクスポートする最も簡単な方法は何ですか?

問題: CGImageRef 型は、未定義の構造体へのポインターであるため、直接エクスポートできません。したがって、それを PyCObject などでラップするラッパー関数を作成して、ポインターを Python に送信できるようにすることができます。しかし、このオブジェクトを Python から CGImageRef に「キャスト」するにはどうすればよいでしょうか。これについてもっと良い方法はありますか?

0 投票する
1 に答える
343 参照

python - 既存のアプリケーションでの python および objc ブリッジ

私は憤慨してobjcでプログラミングを始めましたが、既存のobjcアプリケーションでpythonコードをどのように使用できるかをさまよっていました。このサイトと他のサイトでいくつかのスレッドを見つけましたが、まったく役に立ちませんでした。私がやりたいことは、Apple の開発者 Web サイトにある SpotlightAPI を取得し、その結果を使用して Python コードで処理することです。
1. Apple から SpotlightAPI をダウンロード2. PyObjc
から cocoa-python アプリケーション テンプレートに基づいて新しいプロジェクトを作成
3. SpotlightAPI から PyObjC にコントローラー ファイルを追加
4. バインディングを構成SpotlightAPI の場合と同じ方法で
5. プログラムを実行すると、すべてが正常に動作します
6. NSObject (python.py と呼ばれる) から継承する新しい python クラス ファイルを作成しました
。 7. python ファイルには次のコードが含まれています。


8. Controller.m ファイルの先頭に次のコードを挿入しました。


9. id *myPython;Controller.h ファイルの変数宣言に 追加
10. 次のように controller.m ファイルに sendit メソッドを実装:


コンパイルして正常に実行されますが、init 関数から得られるコンソール メッセージはCreated PythonClass: (null)次のとおり(null)
です。

0 投票する
2 に答える
1444 参照

python - ウィンドウを開かずにwxPythonでOSXメニューバーを変更するには?

すべてのウィンドウを閉じた後も開いたままになる wxPython アプリケーションを作成しているため、新しいファイルを OSX ドック アイコンにドラッグ アンド ドロップできます (これは で行いますmyApp.SetExitOnFrameDelete(False))。

残念ながら、すべてのウィンドウを閉じると、OSX メニューバーには「ヘルプ」メニューしか表示されません。少なくとも [ファイル] メニューの [開く] メニュー項目を追加するか、メイン ウィンドウのメニュー バーを維持したいと考えています。これはどういうわけか wxPython で可能ですか?

実際には、wxPython 以外のハック (たとえば、pyobjc でメニューを設定し、残りの GUI を wxPython で実行する) にも満足しています。とにかく、OSX での wxPython 開発はハックです ;)

更新: Lyndsey Ferguson からのヒントを使用して、この問題を解決することができました。これが私がやったことです:

  • 起動時に、すぐに表示および非表示にするウィンドウを作成します。(-10000,-10000)画面上でちらつかないように位置を設定しました(ああ、なんて汚いハックでしょう!)
  • そのウィンドウに空の EVT_CLOSE イベント ハンドラーを作成して、ウィンドウを閉じることができないようにします。
  • ウィンドウを破棄するとOSXメニューがリセットされるようですが、非表示はそうではありません...したがって、最後のウィンドウが閉じられたら、このウィンドウを再度表示および非表示にする必要があります(ユーザーがウィンドウメニューまたは Cmd-`)

ええ、これは本当に醜いです...誰かがもっときれいな解決策を思いついたら、私はとても感謝しています.

更新 2:実際には、はるかに簡単な方法で解決できます。最後のウィンドウを閉じない場合は、非表示にするだけです。また、メニュー イベントに応答しないようにします。

0 投票する
1 に答える
933 参照

python - py2app、pyObjc、macportsのコンパイルエラー

私は現在、py2appを使用してcherrypyとdjangoを埋め込む小さなPythonアプリを書いています。私のアプリには小さなGUI(トップメニューバーの小さなアイコンとドロップダウンメニューで構成されています)が必要だったため、プロジェクトにpyobjcを含めようとするまではうまく機能しました。

pythonスクリプトは問題なく実行できますが(macportsでpython 2.6を使用しています)、py2appによって生成されたアプリケーションバンドルを起動できません。次のメッセージを含むダイアログボックスが表示されます。

私は簡単にやった:

しかし、何らかの理由でmacportsはopensslをビルドしようとしますが、これを使用すると毎回コンパイルが失敗します。問題はzLibに関連しているようです-これはログに表示されるものです:

...そしてここに:の出力がありfile /opt/local/lib/libz.dylibます

私には何も悪いことはありません。

私はここで少し立ち往生しています。opensslがpyObjcと何の関係があるのか​​さえわかりませんが、コンパイルできなければどこにも行けないようです。Macportsは本当に時々吸う:/

編集私はMacportsの問題を修正することができましたが、py2appの問題は修正しませんでした:/

0 投票する
2 に答える
4545 参照

python - ImportError: Foundation という名前のモジュールがありません

やあ、私はPythonにかなり慣れていないので、我慢してください。

PyObjC のいくつかのコンポーネントを使用して簡単なスクリプトを作成したいと考えています。私は Mac OS 10.5 で実行しているので、私が読んだ限りでは含まれています。

ただし、単純な python プロンプトを開いて入力するとimport Foundation、エラーが発生しますImportError: No module named Foundation

参考までに、私のsys.pathは

'/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/PyObjC',私がふざけていたのでそこに'/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/PyObjC',入ったが、彼らは私を助けてくれないようだ. 2.4 バージョンは存在するようですが、2.5 バージョンには前述のパスを持つフォルダーがないようです。

0 投票する
1 に答える
692 参照

python - クリックフィードバック付きのGrowl Pythonバインディング?

私は、Growl Python バインディング (Growl リポジトリの Growl.py v0.7) を使用して小さなアプリケーションを作成しようとしています。現在不足している機能の 1 つは、Python に送信されるクリック通知です。

Objective-C では、ユーザーが通知をクリックすると、実行中のアプリケーションにトリガーが送信されます。Pythonバインディングでも同様のことをしたいと思います。ユーザーが通知をクリックしたときに、Python プログラムがブラウザーで URL を開く (または別の方法でイベントを処理する) ようにしたいと考えています。

どうすればそれを達成できるかについて何か考えはありますか?

更新:有望なソリューションを提供してくれた synthesizerpatel に感謝します。Lion で機能したという彼の言葉を借ります。残念ながら、私は Mac から離れ始めているので、Mac でのプログラミングはあまりしていません。ただし、Snow Leopard ではまだ動作しないため、デバッグを行いました。その理由は次のとおりです。

ディスカッション Growl PyObjC が PyObjC 2.2b3 で動作しない

ソースコード