問題タブ [shelve]

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 投票する
5 に答える
673 参照

version-control - Hg (Mercurial): 後で作業コピーを「取っておく」方法はありますか?

シナリオ: 最後のコミットの後、コードベースの大規模なリファクタリングを行うことにしました。しばらくすると、予想よりも時間がかかっていることに気付き、リファクタリングを別の機会に延期して、より差し迫ったタスクに取り組みたいと思うようになります。しかし、これまでに行ったリファクタリング作業をすべて失いたくはありません。

それで、作業コピーを「アーカイブ」または「分岐」し(本質的に、それを脇に置きますが、後でアクセスできるようにリポジトリに保管します)、最後の適切なコミットに戻り、そこから再開する方法はありますか?複数の頭を作成するか、2 つを混同しますか?

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

python - Pythonプログラムをバックグラウンドでリモートで起動する

fabfileを使用して、リモートボックスでプログラムをリモートで起動し、結果を取得する必要があります。プログラムの終了には時間がかかるので、バックグラウンドで実行したいので、待つ必要はありません。そこで、os.fork()を試して動作させました。問題は、リモートボックスにSSHで接続し、そこでos.fork()を使用してプログラムを実行すると、プログラムはバックグラウンドで正常に動作することですが、fabfileのrunを使用しようとすると、sudoを使用してプログラムをリモートで起動します。 fork()は機能せず、プログラムはただ静かに終了します。そこで、プログラムをデーモン化するためにPythonデーモンに切り替えました。長い間、それは完璧に機能しました。しかし、Pythonシェルフの辞書を読み取るようにプログラムを作成し始めたとき、python-daemonは機能しなくなりました。python-daemonを使用している場合、シェルフdictを正しくロードできないようですが、その理由はわかりません。

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

eclipse - まだプッシュ/プルしている間に、コミットされていない変更をローカルのmercurialリポジトリに保持する方法は?

コミットしたくないファイルで作業している場合は、それらを保存します。次に、サーバーにプッシュしたい他のファイルがありますが、他の誰かがリポジトリに変更を加えた場合、それらをプルダウンすると、マージまたはリベースするように求められます..しかし、これらのオプションのいずれかにより、私のコミットしていないローカルの変更

これを回避するために他の人は何をしていますか?シェルビング エクステンションのドキュメントを理解するのは難しいと思います。

注: Mercurial Eclipse を使用して、サーバーとの間でファイルをプッシュおよびプルしています。

これについての説明は大歓迎です!ありがとう!


例:

Mercurial Eclipse で自分の Web サイトに取り組んでいます。まだサーバーにコミットしたくない新しいフォルダーと新しいファイルがあります。また、いくつかの既存のファイルを変更しましたが、それらの変更をまだ公開したくありません。

次に、Web サイトの何かが壊れて修正する必要があります。リベースまたはレポの最新のヒントとマージしないと修正できません。これにより、コミットされていない変更がすべて失われます。

編集した新しいフォルダとファイルを失いたくない場合、どうすればよいですか? 再クローニングは面倒に思えます。ファイルを新しいフォルダにコピーするのも面倒です。Shelving や MQ が私のやりたいことをやってくれると確信していますが、どうすればいいのかまだわかりません。

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

python - 棚に既存の辞書を追加する方法

数百メガバイトの大きな辞書があり、それをディスク上の棚に作りたいとしましょう。pyparを使用してMPIを使用し、マスターリストのクリーンなビットを生成しています。これを達成するための最良の方法は何ですか?例:

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

python - Python3.1.1のShelveモジュール

私はPythonを初めて使用し、O'Reillyの「LearningPython」シリーズを通じて学習しています。私は棚の例で立ち往生していて、プログラムが機能しない理由を理解できません。サンプルデータを作成して、それをシェルフファイルにロードしようとしています。奇妙なことに、IDLEシェルに入力すると機能しますが、.pyファイルに入力して実行しようとすると機能しません。これが私のコードです:

繰り返しますが、このコードをIDLEシェルで実行すると問題はありませんが、.pyファイルから実行すると次のエラーが発生します。

トレースバック(最後の最後の呼び出し):ファイル "Documents / Python_Learning / shelve.py"、7行目インポートシェルフファイル "Documents / Python_Learning / shelve.py"、9行目db = shelve.open('persondb') AttributeError:'module'オブジェクトに属性'open'がありません

役立つ場合は、SnowLeopardで実行しているPythonバージョンに関する情報を以下に示します。

Python 3.1.1(r311:74543、2009年8月24日、18:44:04)[GCC 4.0.1(Apple Inc.ビルド5493)] on darwin

初心者にご協力いただきありがとうございます!

意思

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

perforce - 棚に置かれていたチェンジリストでPERFORCEシェルフをチェックアウトするにはどうすればよいですか?

CL1000のPERFORCEシェルフがあります。不明なCLXで他の誰かによってシェルフされました。

私はCL2000にいます。Xが何であれ同期して1000のシェルフを解除したいので、コードはシェルフされたときとまったく同じになります。どうすればよいですか?

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

python - 既存のクラスに関数を追加する最も簡単な方法

私はPythonの組み込みのshelveモジュールを使用して、いくつかの単純な辞書を管理しています。私が抱えている問題は、使用したいのですwith shelve.open(filename) as f:が、試してみると、DbfilenameShelfには属性がないと主張しています__exit__

したがって、これを行う最も簡単な方法は、別のクラスでラップし、__exit__そのラッパーに関数を追加することだと思います。私はこれを試しました:

しかし、そのようにラッパーをインスタンス化しようとするwrapped = Wrapper(filename)と、無効な引数を指定していることがわかります。

要求に応じたエラー:

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

python - python shelve ... bsddb deprecated ... shelve に別のデータベースを使用させるには?

OS Xでpython 2.7.2で開発されたアプリがあります。モジュールshelveを使用しており、Macではデフォルトでbsddbになっているようです。モジュール bsddb が存在せず、ActiveState のパッケージ マネージャー (pypm) に含まれていないため、プログラムは ActiveState python 2.7 を搭載した Windows 7 マシンでは実行されません。ActiveState のドキュメントには、v 2.6 で非推奨と記載されています。DBを作成したOS X pythonのデフォルトがbsddbであるため、bdddbを試していると思います。shelve データベースを削除して Windows で実行すると、基盤となる他のデータベースが問題なく使用されます。Macのパイソンも大喜び。

したがって、シェルブには bdsdb 以外のバックエンドの使用を強制する必要があると思います。gdbm モジュールと同様です。しかし、私はそれを行う方法を理解できません。

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

python - shelve が使用する制御メモリ

Python で shelve を使用して、メモリに収まらない巨大な辞書を処理し、永続性を実現しています。

辞書のランダムな場所に頻繁に取得して挿入する必要があるコードを実行しているときに、シェルブが 4 GB の使用可能なメモリの約 3% しか使用していないことに気付きました。これにより、必要なディスクからの読み取り/書き込みの回数が増えるため、コードの実行が遅くなります。

メモリ内のヒット数が多くなるように、シェルフがより多くの使用可能なメモリ (たとえば ~50%) を使用するようにする方法はありますか?

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

python - Python: 2 つの py モジュールを使用すると shelve で属性エラーが発生する

shelve モジュールを試していますが、問題が発生しています。私の意図は、シェルブ内のファイルを変更する 1 つのモジュールが 2 番目のモジュールで関数を呼び出すようにすることです。棚に格納されているものに変数を設定し、そのオブジェクトを出力するだけのプロトタイプ (以下) を作成しました。

これを行おうとすると、次の属性エラーが発生します。

私の推測では、「ユーザー」クラスが存在することに気付いていませんが、その理由はわかりません。File1 は File2 がメイン関数で行うのと同じ関数を呼び出し、そのインスタンスで正しく動作します。この問題について何か助けていただければ幸いです。問題が何であるかについて混乱しています。



完全なトレースバック: