問題タブ [python-stackless]
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 - MySQLドライバーにINFORMATION_SCHEMAの問題がありますか?
StacklessPythonのConcurrenceフレームワークを試しています。これにはMySQLドライバーが含まれており、以前はMySQLdbで正常に実行されていたコードを実行すると、失敗します。
私がしていること:
ユーザー名/パスワード/ポート/データベースでdbapiを使用してMySQLデータベースに接続します。
実行中
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
これは次のメッセージで失敗します:
「mydatabase」は、手順1で指定したデータベースです。
「USEmydatabase」を発行した後にMySQLコンソールで同じクエリを実行すると、完全に機能します。
ネットワーク通信をチェックすると、次のようになります。
これはドライバーの問題ですか(MySQLdbで機能するため)?または、この方法でINFORMATION_SCHEMAを照会できないようにする必要がありますか?
クエリを実行する前に特定の「USEINFORMATION_SCHEMA」を送信すると、期待どおりの結果が得られます。ただし、コード全体に「USE」クエリを振りかける必要はありません。
python - スタックレスPythonは、並行性をどのように高速化できますか?
スタックレスPythonはマルチコアをうまく利用していなかったので、Pythonスレッド/マルチプロセッシングよりも高速である必要があるのはどこですか?
すべてのベンチマークは、スタックレスpythonタスクレットを使用してpythonスレッドのロックとキューと比較します。これは不公平です。ロックの効率は常に低いためです。
ロックなしでシングルスレッド関数呼び出しを使用する場合は、スタックレスPythonと同じくらい効率的である必要があります。
java - PythonとJava-並行プログラミングを行うためにどちらを選びますか、そしてその理由は何ですか?
また、PythonまたはJavaでない場合は、より一般的に静的型の言語または動的型の言語を選択しますか?
django - mod_pythonはスタックレスPythonをロードしていません
スタックレスPythonを使用してApache2mod_python環境をセットアップしましたが、動作しています。そして、Python環境をでテストすると、次sys.version
のように表示されます。
ブラウザで。
しかし、私がimport stackless
それをするとき、それは示します:
また、MySQLdb、nltkなどをロードできません。これらのモジュールはすべてコマンドラインでロードできます。だから私の推測では、mod_pythonは古いPythonインストールを参照しています。
何が問題になる可能性がありますか?
私はスタックレスに対してすべてをインストールしました。あなたが見ることができるように私の応答はsys.version
です
これはコードからの応答です:
しかし、import stackless
以下のように追加すると、前述のエラーがスローされます。
足りないものはありますか?
erlang - ホット コード スワッピングやサンドボックスをサポートしているプログラミング言語はどれですか?
ユーザーが AI を作成し、それをゲームの一部として実行できる Web ベースの MMO ゲームを作成したいと考えています。グラフィックには Html5 を使用する予定で、スマートフォンからアクセスできるように Web ベースにしたいと考えています。サンドボックス化、同時実行性、ホット コード スワッピング、および作業を容易にする大規模なライブラリをサポートするプログラミング言語を見つける必要があります。
現在、私の研究では、Erlang、Stackless Python、および Lua について調べています。どんな助けでも大歓迎です。
python - スタックレス Python を何に使用しますか?
Stackless Python に関連する多くの質問があります。しかし、この私の質問に答えている人は誰もいないと思います(間違っている場合は修正してください-お願いします!)。いつも話題になっているので知りたいです。スタックレスを何に使用しますか? CPythonよりも優れている点は?
はい、操作がブロックされていない限り、多くの軽量スレッドをすばやく作成できるグリーン スレッド (スタックレス) があります (Ruby のスレッドのようなものですか?)。これは何に最適ですか?CPython で使用したい他の機能はありますか?
python - ブロッキングチャネルと非同期メッセージパッシング
「メッセージパッシング」には2つの方法があることに気づきました。1つはErlangの使用を確認し、もう1つはStacklessPythonからのものです。私が理解していることから、ここに違いがあります
Erlangスタイル-メッセージが送信され、受信プロセスのメールボックスにキューに入れられます。そこから、FIFOベースで削除されます。最初のプロセスがメッセージを送信すると、続行できます。
Pythonスタイル-プロセスAはプロセスBに送信するためにキューに入れられます。Bは現在他のアクションを実行しているため、Bが受信する準備ができるまでAはフリーズします。Bが読み取りチャネルを開くと、Aはデータを送信し、両方とも続行します。
これで、Erlangメソッドの長所は、ブロックされたプロセスがないことです。Bが受信できない場合でも、Aは続行できます。しかし、私が書いたいくつかのプログラムでは、メッセージの流入が流出よりも多いため、Erlangメッセージボックスが数百(または数千)のメッセージでいっぱいになる可能性があることに気づきました。
今、私はどちらのフレームワーク/言語でも大きなプログラムを書いたことがないので、あなたの経験はこれであるのだろうかと思います。
はい、私はこれが抽象的なことを知っていますが、私はかなり抽象的な答えも探しています。
python - Python でマルチスレッド/並行プログラミングを行うためのオプションは何ですか?
私は単純なサイト スパイダーを書いていますが、この機会に Python での並行プログラミングについて何か新しいことを学ぶことにしました。スレッドとキューを使用する代わりに、別の方法を試してみることにしましたが、何が自分に合っているかわかりません。
Stackless、Celery、Twisted、Tornado などについて聞いたことがあります。データベースと Celery の他のすべての依存関係をセットアップする必要はありませんが、それが私の目的に適している場合はそうします。
私の質問は、私のアプリへの適合性と一般的な有用性のバランスはどのようなものですか? 私はスタックレスのタスクレットを見てきましたが、urlopen() 呼び出しがブロックされないか、それらが並行して実行されるかどうかはわかりません。どこにも言及されていません。
誰かが私のオプションの詳細と、何を使用するのが最適かを教えてもらえますか?
ありがとう。
python - Stackless Python 3.1 を使用した基本的な非同期 (非ブロッキング) HTTP クライアントのソリューションはありますか?
更新: 独自の非同期 Web サーバーの作成 (Dave Beazley によるプレゼンテーションに続く) など、Py3 で多くの作業を行った後、最終的に Python (および私のコードの膨大なスタック) をダンプしました。調べてみてください: GitHub (最近のすべての興味深いコードの 95% がここにあります)、npm (ユーザー フレンドリーとは言えないパッケージ マネージャー; よくやったeasy_install
、あなたは自分の名に恥じない)、めちゃくちゃモジュールの巨大なリポジトリ (事実上 24 時間 365 日公開されている大量の新しいものを含む)、巨大で活気のあるコミュニティ、すぐに使用できる非同期 HTTP とファイル処理...、これらすべて ( V8のおかげで)の 3 分の 1 で光の速度—何が気に入らないのですか?プロパガンダの続きを読む: 「スクリプティングの未来」 (スライド ホスティング提供: SpreeWebdesign )。
非同期の非ブロッキング方式で HTTP を提供する (および HTTP 要求を行う) 方法を探しています。私が行ったように、 Stackless Python 3.1 (ドキュメントについてはこちらも参照) を選択した場合、これを行うのは難しいようです。
非常に有益で詳細な記事How To Use Linux epoll with Pythonのようないくつかの基本的な例があり、いくつかの貴重な情報を含むstacklessexamplesという名前の Google コード プロジェクトがあります (ただし、Python 3.x 互換コードはありません)。
それで、何日も Web で調査を行い、これまでに見つけた断片をまとめようとした結果、かなり使用可能な非同期 HTTP ライブラリを知っている人はいますか? WSGI 準拠である必要はありません (私はそれには興味がありません)。
サーバー部分は、複数の非ブロッキング HTTP 要求を処理できる必要があります (および、HTTP ヘッダー処理の基本を実行できる可能性があります)。HTTP クライアント部分は、HTTP リクエストを介して非ブロッキングの方法で Web コンテンツを取得できる必要があります (基本的なヘッダー処理も行いますが、承認などの凝った処理は行いません)。
これまでの私の調査では、非ブロッキング HTTP が示されています。
スタックレスで協調的にスケジュールされた環境で意味のある唯一の方法です。
標準ライブラリのおかげで Stackless Python 3 で実行可能です
select epoll
(Py2.6 で導入されました。一部のソリューションは を好みますが、それは pyevent プロジェクトが Py2.5 で開発を停止したように見えるため、libevent
別のハードルを意味します)。残念ながら、ほとんどの人は HTTP のブロックに依存しているため、まだ家庭用品ではありません。
今のように見える方法では、ソケット プログラミングの基礎を学び、独自の HTTP サーバー/クライアント ライブラリを作成する必要があります。私はその分野のバックグラウンドがほとんどなく、そのように「歴史を繰り返す」ことになっているので、私はまだその仕事から遠ざかっています.
関連するポインタについては非常に満足しています。select.epoll
私は;を利用するソリューションを非常に好みます。古いものよりもはるかにスケーラブルであることを覚えているようですasyncore
(ただし、誰かがこれについてより正確なデータを持っているかもしれません)。最小要件として、ソリューションは Ubuntu 9.10 で実行する必要があります。
python - スタックレス python の使用が困難で、dict に書き込めません
Pythonで実装し、複数のコアを利用したい単純なmap-reduceタイプのアルゴリズムがあります。
2.6 のネイティブ スレッド モジュールを使用するスレッドは複数のコアを使用しないことをどこかで読みました。本当?
スタックレス python を使用して実装しましたが、奇妙なエラーが発生しています [更新: クイック検索で、スタック レスでは複数のコアが許可されないことがわかりました。他の代替手段はありますか?]
ただし、上記のコードでは、ラベルに割り当てられた値、つまり辞書の変更が失われます。
上記の伝播関数は、MicroThreads (つまり、TaskLets) の呼び出し可能として使用されます。