問題タブ [rpython]
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.
python - PyPy / RPythonを使用して、小さなスタンドアロンの実行可能ファイルを作成できますか?
(または、「PyPy / RPythonを使用して、Pythonランタイムを必要とせずにPythonをコンパイル/C / C ++に変換できますか?」)
私はPyPyをそのRPythonとそのPython、その実行とそのコンパイルとその変換で理解しようとしましたが、やや失敗しました。
架空のPythonプロジェクト(Windows用)があります。py2exeの使用に伴う数メガバイト(UPX後)ではなく、100キロバイト(ONO)のオーダーでサイズを小さくしたいと思います。PyPy 1を使用して、Python26.dllに依存しないスタンドアロンの実行可能ファイルを作成できますか?可能であれば、for
組み込み型でのみ機能するようにRPythonの制限に従う必要がありますか、それとも完全なPython構文ですか?
これができれば、PythonのCモジュールを直接使用することはほぼ確実にできないことを私は理解しています。
1 (質問の時から状況はより明確になり、ツールチェーンのこの部分はPyPyではなくRPythonとしてより明確にブランド化されています。2010年はそうではありませんでした。)
pypy - PyPy変換エラー
これがこの質問にふさわしい場所であることを願っています。単純なJIT対応のインタープリターを作成しようとしています。しかし、翻訳に関しては奇妙なエラーが発生しています。JavaScriptのサンプルパーサーをほぼ逐語的にコピーしましたが、ここに私の問題があります。
まず第一に、ここにパーサーがあります(JSの例のようにほぼ100%):
と私の文法:
コードをcにコンパイルするために次のことを行っています。
私は何が欠けていますか?これはとても簡単に思えました...
python - pypy変換中にインストールされたネイティブライブラリパスを指定する
Macマシンで最新のpypyリポジトリを構築しようとしています。必要なライブラリの1つであるlibintlがにインストールされてい$HOME/opt/local/lib
ます。私は(以前に構築されたものを使用してpypy-c
)実行します、
しかし、約30分後、
では、このライブラリのパスをどのように指定する必要がありますか?カスタムrpythonプログラムのコンパイルと実行についても同じことが起こると思います。
interpreter - PyPy Translator Toolchainを使用してどのようなインタプリタが作成されましたか?
PyPy自体の他に、PyPy Translator Toolchainを使用してどのようなインタプリタが作成されましたか?
python - ジェネレーターはRPythonでサポートされていますか?
ジェネレーターはRPythonでサポートされていますか?PyPyのドキュメントで、ジェネレーターはサポートされていないということを読んだだけです。
すべての生成ステップは関数呼び出しで生成されるため、Cのような静的に型付けされた言語に変換するのは簡単なようです。
誰かが理由を説明できますか?または、主題にもう少し光を当てます。私は現在、RPythonセーフコードの記述の基本を学ぼうとしています。
python - RPythonで静的に入力されるものは何ですか?
RPython(Pythonのサブセット)は静的に型付けされているとよく言われます。(例:ウィキペディア。)
最初は、Pythonにそれをどのように追加するのか疑問に思いassert isinstance(arg1, ...)
、各関数の先頭などにステートメントを追加する要件を追加したのではないかと思いました(しかし、私はそれを本当に信じられませんでした)。
次に、いくつかのRPythonコードを調べましたが、静的に型指定されているようには見えません。多くの場合、コンパイラーは、関数の引数が特定のタイプのみである可能性があることを証明できる可能性がありますが、すべての場合に確実にそうであるとは限りません。
たとえば、これは:のRPython実装ですstring.split
。
RPythonに関するPyPyのドキュメントでは、「変数には最大で1つのタイプの値を含める必要があります」と書かれています。
では、関数の引数も変数としてカウントされますか?または、RPythonはどのような意味で静的に型付けされていますか?それとも、これは実際に誤解されていますか?
python - Python 2.6、R2.14、Win 7x64 エラーで Rpy をインポートする
rpy を python にインポートしようとしています。このエラーが発生し続けます。
フォーラムを調べたところ、同じ問題に関する次のスレッドが見つかりました。そこで誰かが推奨することに従っても、同じエラーが発生します。Rpy 1.0.3、Python 2.6、R2.14、および Windows 7 x64 を使用しています。Windowsインストール用のrpyサイトで推奨されているnumpy 1.6.1とpywin32ビルド216も持っています。
R がパスにあり、同じエラーが引き続き発生します。
x64 R.exe へのパスを追加しました。また、上記の投稿のようになり、余分な + を追加しました。コマンドラインで引き続き実行されますが、新しいエラーが発生します。
トレースバック (最後の最後の呼び出し):
ファイル ""、1 行目、
インポート rpy
ファイル "E:\Python26\Lib\site-packages\rpy.py"、101 行目、
raise RuntimeError("Unable to locate R.dll %s" % RHOME 内)
RuntimeError: C:\Program Files\R\R-2.14.0 内で R.dll が見つかりません
R.dll で他のエラーがないかスタックを検索します。R.dllも2つあるようです。i386 に 1 つ、x64 に 1 つ。
rpy.py で見つかりました
if sys.platform=='win32': import win32api os.environ['PATH'] += ';' + os.path.join(RHOME,'ビン')
そこで、「bin」の後に「i386」、「x64」、「R.dll」を追加しました。どこを見るかを伝えた後でも、同じエラーが発生します。「rinterface/ init .py」の編集でいくつかのものを見つけましたが、このファイルが見つかりません。確かに、同じ問題が発生しているように見える rpy2 用でした。
何を変更したかはわかりませんが、今では次のようになっています
トレースバック (最新の最後の呼び出し):
ファイル ""、行 1、
インポート rpy
ファイル "E:\Python26\lib\site-packages\rpy.py"、行 106、
win32api.LoadLibrary( Rlib )
エラー: (126 , 'LoadLibrary', '指定されたモジュールが見つかりませんでした.')
x64モードで試してみました。x64 は win32 モジュールであるため、loadlibrary が動作しないというエラーが発生しました。i386 に戻ったところ、R2.14.0 では rpy が動作しないというエラーが表示されました。古いバージョンの R を試してみます。
さらに見直してみると、私はばかです。私はrpy2をダウンロードして、次の同じ変更を加えましたが、それは魅力のように機能します。
python - PyPyはそれ自体を翻訳しますか?
私はこれをまっすぐにしていますか?PyPyインタープリターは実際にそれ自体を解釈してから、それ自体を翻訳しますか?
これが私の現在の理解です:
- RPythonのツールチェーンには、翻訳対象のプログラムを部分的に実行して、注釈を付けて翻訳するための一種の前処理済みバージョンを取得することが含まれます。
- CPython上で実行されるPyPyインタープリターは、それ自体を部分的に解釈するために実行され、その時点で、変換を実行するRPythonの半分に制御を渡しますか?
これが本当なら、これは私が今まで見た中で最も心を曲げるものの1つです。
python - RPythonsysメソッドが機能しない
私は次のコードを持っています:
ただし、実行するpython ./pypy/pypy/translator/goal/translate.py t.py
と、次のエラーが発生します。
実際にはエラーにはもっと多くのことがありましたが、私はこの最後の部分だけが関連していると思いました。もっと参考になると思われる場合は、コメントしてください。編集します。
実際、sys.exitをsys.stdout.writeのようなさらに単純なものに置き換えると、別のエラーが発生します。
私に与える:
sysメソッドは単にRPythonの立ち入り禁止ですか?exitとstdoutはCですぐに利用できるので、私にはちょっと奇妙に思えます。ただし、エラーメッセージは別のもののように見えるので、間違ったツリーを吠えているだけかもしれません。
現在、このガイドを使用して、RPythonで許可されているものと許可されていないものを大まかに把握しています。詳細については、他にアクセスしやすいリファレンスを使用できますか?
django - djangoアプリでrpyを使用すると、RPy_Exceptionがスローされます。R関数「get」が見つかりません
トレースバック(コピー貼り付け)は次のとおりです。
どんな手掛かり?
編集:これがコードです
誤解しないでください、それはエラーが発生している行です。別のPythonプロンプトを試してみましたが、import rpy
失敗しません。ウェブサイトでのみ失敗しています。なんで?