問題タブ [python-2to3]

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 に答える
936 参照

python - 独自の 2to3 フィクサーを起動するには?

独自のフィクサーを作成しましたが、どうすれば実行できますか? これを行う明確な方法が見つかりません。

これだけ:

そしてそれを実行します:

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

python - 有効な Python 2 コードを出力する 2to3 フィクサーは?

2to3 は、Python 2.x ソース コードを読み取り、一連の修正プログラムを適用して有効な Python 3.x コードに変換する Python プログラムです。

https://docs.python.org/3/library/2to3.html#fixersにリストされている 40 の修正プログラムを検討してください。設計上、それらはすべて有効な Python 3 コードを出力します。有効なPython 2コードを出力するのはどれですか?

たとえば、Python 3 だけでなく Python 2 も有効であるため、「古い不等式構文<>!=" に変換する」修正プログラム NE にはこのプロパティがあります。!=

一方、「Renames __nonzero__to __bool__」というフィクサー NONZERO にはプロパティがありません。Python __bool__2.7 には機能がないためです。

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

python-3.x - setuptools: 元のディレクトリではなくビルド ディレクトリでテストを実行するようにしました

私は現在、Python3.2 と互換性のある Python2 用に書かれたモジュールを作ろうとしています。

すべてのコードが自動的に変換2to3され、setup.py に追加されるようにすることから始めました。

これまでのところ、すべてが正常に機能しています。

ここで、変換されたファイルをテストしたいと思います。
テストは、なしで実行できるように記述されています2to3。私のフォルダ構造は次のとおりです。

私のsetup.pyに、追加しました

今、私は実行します

自動変換されたコードをテストするため。mymoduleただし、テストがまだディレクトリで実行されているため、失敗します。

私の中にbuild/は、正しく変換されたファイルがあります。配布がそれらを正しく変換している場合、変換されたファイルに対してテストも実行されないのはなぜですか?

何か不足していますか?setuptools/distribute のドキュメントで欠落しているパラメーターを確認しました。不要なスペースを占有するテスト専用のリソース ファイルがいくつかあるため、モジュールにテストを含めたくありません。

=> python3 で実行しているときに別のフォルダーのテストを実行するように setup.py を構成できますか?

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

python - Traceback.py は int と 'limit' を比較しようとしますが、これは ImportError に解決されます

Python 3 でレタスを実行しようとしていますが、うまくいきません。そのため、問題のあるすべてのファイルをすばやく2to3で処理したところ、次のような問題が発生しました。

地形を見つけられずにハンドリングすると、この線が原因でレタスがクラッシュします

原因は次のとおりです。

limit は でありImportError、n と比較することはできませんint

どうすればこれを回避できますか?

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

python - Python 3 で Python 2 オブジェクトを unpickle する

Python 2.4 でピクルされたオブジェクトを Python 3.4 でロードする方法があるかどうか疑問に思っています。

私は大量の企業のレガシー コードを最新の状態にするために 2to3 を実行してきました。

これを行った後、ファイルを実行すると、次のエラーが発生します。

競合しているピクルされたオブジェクトを見ると、それはdictin adictであり、 type のキーと値を含んでいますstr

だから私の質問は、もともとPython 2.4でピクルス化されたオブジェクトをPython 3.4でロードする方法はありますか?

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

python - メタクラスを使用して Python2 を Python3 に変換すると、間違ったフローが発生する

Python 3.4 に変換する必要がある非常に大きな Python 2.7.6 プロジェクトがあります。2to3 スクリプトを使用しましたが、「メタクラス」の処理が壊れているようです。

コードをフィルタリングして短縮し、問題を特定しました。次のフラグメントは、Python 2.7.6 でうまく機能します。

コードは期待どおりに出力されます。

しかし、Python 3.4 でコードを実行すると、最後の出力しかありません。

計算が間違っているか2to3、手作業が必要です。残念ながら、メタクラスの経験はほとんどありません。

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

python - Python 2 を Python 3 と互換にする

Python 2.4.3私の現在の要件は、 RHEL 5 にバンドルされているスクリプトを作成することです。しかし、数年後、たとえば 5 年後、サーバーは付属の RHEL 8 または 9 にアップグレードされる可能性がありますPython 3。そのため、両方のバージョンに対応するコードを書くことになっています。現在、私のスクリプトには、ディレクトリの作成、ファイルの解凍、ファイル操作、XML ファイルの読み取り (現在は で行っていますminidom)、いくつかのハッシュなどの基本的な操作が含まれています。

python-modernizeと呼ばれるツールが の上に構築された作業を行うことがわかりました2to3。ツールを検索したところ、tar.gz ファイルが見つかりました。python-modernize ファイルは含まれていません。しかし、私が見つけたのはsetup.pyファイルだけでした。私はPythonが初めてで、知っているのは何かがpip. しかし、Python 2.4.3 で pip を使用するのは大変なことも読みました。

どうすれば仕事ができるようになるか教えてください。

これも参照しましたが、ツールの使用方法が見つかりませんでした。

また、これに代わる良い方法があれば教えてください。