問題タブ [jython]
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.
image - Jython、ImageInfo
ImageInfo と Jython を使用して、ハードドライブ上の画像から情報を取得しようとしています。
モジュールを正常にインポートしましたが、次のエラーが発生し続けます。
そして、これは私が使用しようとしているコードです:
誰かが私が間違っていることを指摘できますか。
乾杯
イーフ
java - Java スクリプトによるセキュリティ (JRuby、Jython、Groovy、BeanShell など)
検証されていないスクリプトをいくつか実行しようとしています (まだ決定されていない言語で書かれていますが、Java ベースである必要があるため、JRuby、Groovy、Jython、BeanShell などがすべて候補です)。私は、これらのスクリプトがいくつかのことを実行できるようにし、他のことを実行できないようにしたいと考えています。
通常は、Java の SecurityManager を使用するだけで済みます。これは非常に単純で、ファイルとネットワークへのアクセス、JVM をシャットダウンする機能などを制限できます。これは、ブロックしたい高レベルのものにはうまく機能します。
ただし、許可したいことがいくつかありますが、提供しているカスタム API/ライブラリを介してのみです。たとえば、直接のネットワーク アクセスで yahoo.com への URLConnection を開くことを許可したくありませんが、MyURLConnection でそれが行われていれば問題ありません。つまり、許可したい一連のメソッド/クラスがあり、それ以外はすべて立ち入り禁止にしたいということです。
この種のセキュリティは、標準の Java セキュリティ モデルで実現できるとは思いませんが、おそらく実現できるでしょう。スクリプト言語自体のパフォーマンスや柔軟性に関する特定の要件はありません (スクリプトは、基本的なループ/分岐を使用した API への単純な手続き型呼び出しになります)。したがって、すべてのリフレクション呼び出しでセキュリティ チェックをチェックする「大きな」オーバーヘッドでさえ、私には問題ありません。
提案?
classpath - $CLASSPATH に追加せずに Jython を起動するときに、どうすればクラスパスに jar を追加できますか?
に似たようなことをしたいと思いjython -cp FOO:BAR:BAZ argle.py
ます。
FOO
、BAR
、およびBAZ
を追加すると、$CLASSPATH
これが機能します。実行時にそれらを追加しようとしましたsys.path
が、jar では機能しないようです。実行時に展開されたjarへのパスを追加すると機能しsys.path
ます。jar ファイルを展開する簡単な方法はありますか? このスクリプトを実行するすべてのユーザーを拡張$CLASSPATH
することは、受け入れられる代替手段ではありません。
ありがとう。
java - インポートされたモジュールで Jython クラスを使用できないのはなぜですか?
同じディレクトリにいくつかの Jython モジュールがあります。それらの 1 つは、次のクラスを定義します。
このクラスを独自のモジュール内からインスタンス化して実行できます。ただし、そのモジュールを別の Jython モジュールにインポートして MyTask() をインスタンス化しようとすると、次のエラーが発生します。
Runnable.__init__(self) AttributeError: クラス Runnable には属性 '__init__' がありません
ここで何が間違っていますか?このコードは、クラスが定義されているモジュール内では有効ですが、そのクラスを別のモジュールにインポートすると有効でないのはなぜですか? (「from modulename import MyTask」ではなく「import modulename」でインポートしています)
編集: 問題は Runnable がインターフェースであり、したがってコンストラクターがないことであると示唆した人へ: 私はこれを知っていますが、この状況を完全には説明していません。問題の核心は、このクラスが定義されているモジュール内でインスタンス化できることですが、別のモジュールにインポートしてそこでインスタンス化することはできません。つまり、
mytask_module で:
other_module で:
今、あなたは混乱を見ますか?問題が純粋に説明したとおりである場合、前の例でも AttributeError が発生するはずですが、そうではありません。それはうまくいきます。
編集 #2 :どうやらこれはスタンドアロン スクリプトでは機能しますが、私の Eclipse/Pydev 環境では機能しません。したがって、本当の問題は、なぜ Pydev が私にこれをさせないのかということです。これが自分の Pydev/Eclipse 環境でうまくいく場合は、私に知らせてください。
java - PyStone でテストすると、Jython の動作に一貫性がないのはなぜですか?
私は最近 Jython で遊んでいましたが、pystone を使って簡単で汚いベンチマークを行うことにしました。リファレンスを得るために、最初にループ数を増やして cPython 2.6 をテストしました (Jython はしばらくしてから JIT から利益を得るようになるはずなので、これは適切であると考えました)。
ご覧のとおり、cPython は一貫して動作します。テストを完了するのにかかる時間は、ループの数に比例して増加します。これを知って、Jython のテストを開始しました。
最初の実行中、Jython は C の兄弟に比べてかなりお粗末に実行されます。ループの数を増やすと、私の最初の仮説が予測したように、cPython に近づき、気分が良くなり始めました。ループの数は 10 倍に増えましたが、Jython がそれらを完了するのに約 5 倍の時間しかかからなかったことに注意してください。ですから、ご想像のとおり、Jython が最終テストで本当にうまくいくことを期待していました。しかし、非常に残念なことに、最初の実行よりも 2 倍以上遅くなりました。
あなたの仮説は何ですか: Jython がこれほど一貫性のない動作をするのはなぜですか? ある時点で GC が開始され、多くの時間がかかっている可能性がありますか? PyStone のコードを調べたところ、ガベージ コレクションがオフになっていないように見えますが、Java の GC は少なくとも Python と同じくらい優れていると思います...この速度低下は永続的だと思いますか、それともなくなると思いますか?ループ数を増やした後のある時点で?Jython は、非常に長時間実行されるプロセスでどのように動作しますか?
EDIT:残念ながら、java.lang.OutOfMemoryError
ループ数を200万に増やすと...
(もちろん、Jython はまだベータ版なので、最終リリースでは改善されるはずです。)
Jython 2.5b1 (トランク:5903:5905、2009 年 1 月 9 日、16:01:29)、Java(TM) SE ランタイム環境 (ビルド 1.6.0_07-b06-153)、および Java HotSpot(TM) 64 ビットを使用しています。 MacOS X 10.5 上のサーバー VM (ビルド 1.6.0_07-b06-57、混合モード)。
回答ありがとうございます。
java - JavaSE を使用した Jython Netbeans
Java と jython を組み合わせた Java アプリケーションを開発したいと考えています。Python プラグインで IDE Netbeans を使用しています。これに取り組むにはどうすればよいですか?(IDE から JavaSE を使用した Groovy の組み込みサポートがあり、Java コードから Groovy クラスを呼び出し、Groovy コードから Java クラスを呼び出しますが、jython には対応していません)
python - ファイルの名前変更、Python/Jython
ファイルでいっぱいのディレクトリがあり、名前にアンパサンドが含まれているものもあります。すべてのファイルの名前をアンパサンドに変更し、各アンパサンドをプラス (+) に置き換えたいと思います。私は約10kのファイルを扱っています。これを行うための最良の方法は何ですか?