問題タブ [execfile]
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 - 別のPythonプログラムからPythonプログラムを実行します(特定の要件があります)
2つのPythonスクリプトA.py
とがありB.py
ます。次のような方法でA内からBを実行する方法を探しています。
- Bはそれを信じています( Bのブロック内
__main__
のコードが実行されるように)if __name__=="__main__"
- Bは実際にはそうではありません(たとえば、 sys.modules
__main__
のエントリを上書きしないように)"__main__"
- B内で発生した例外はAに伝播します(つまり、
except
Aの句でキャッチされる可能性があります)。 - これらの例外がキャッチされない場合、B内の行番号を参照する正しいトレースバックが生成されます。
私はさまざまなテクニックを試しましたが、すべての要件を満たすものはないようです。
- サブプロセスモジュールのツールを使用するということは、Bの例外がAに伝播しないことを意味します。
execfile("B.py", {})
Bを実行しますが、メインではないと思います。execfile("B.py", {'__name__': '__main__'})
B.pyにそれがメインであると思わせますが、例外のトレースバック印刷を台無しにしているように見えるため、トレースバックはA内の行(つまり、実際の__main__
)を参照します。imp.load_source
名前としてwithを使用すると__main__
、実際にsys.modulesが変更されることを除いて、ほとんど機能します。__main__
私が欲しいものを手に入れる方法はありますか?
(これを行う理由は、既存のライブラリをクリーンアップしているためです。このライブラリには実際のテストスイートはなく、特定の出力を生成する一連の「サンプル」スクリプトのみがあります。これらを次のように活用しようとしています。クリーンアップがこれらの例を実行するライブラリの機能に影響を与えないことを確認するためのテストなので、テストスイート内から各サンプルスクリプトを実行したいと思います。テストスクリプト内でこれらのスクリプトの例外を確認できるようにしたいので、テストスクリプトは、サンプルスクリプトで例外が発生するたびに、一般的なSubprocessErrorを報告するだけでなく、失敗のタイプを報告できます。)
python - ファイルに対して Python スクリプトを反復処理し、ワイルドカードを使用して展開し、引数を渡す
ファイルに対して何らかの処理を行うスクリプトがいくつかあります。通常、最初のコマンドライン引数としてファイルを受け入れ、その後に他の引数を受け入れます。
glob
実行するスクリプトの名前、ターゲット ファイル (a-la ) を指定するワイルドカード、および場合によっては入力スクリプトに渡す引数を受け入れるマスター スクリプトを作成したいと考えています。マスター スクリプトはファイルを繰り返し処理し、追加の引数を指定して入力スクリプトを実行します。
if __name__ == "__main__":
入力スクリプトはレガシーであり、末尾に通常の行が含まれていない可能性があることに注意してください。にアクセスすることもありますsys.argv
。
助言がありますか?
python - Pythonでコード文字列を実行するには?
ここに似たような質問があることは知っていますが、別の問題があります。
I have some code files in a plugin but the plugin uses internal paths only the software knows, so I am not able to access that path to use it with execfile
.
But there is an internal python function called readInternalFile (path)
, where I can use this internal path and it returns the contents of this file as a string.
So I thought then I could use the standard python function exec
, but as soon as I do that, it complains about the very first line being '\r\n'.
How can I fix this? I print the type of the data readInternalFile
returns, and it's str
, so everything should be fine, right?
The code in the file works by itself and has no syntax errors, etc.
python - Python: 'import *' と execfile の比較
一部の Django アプリではsettings_local.py
、さまざまな環境 (開発、テスト、運用など) で異なる設定をオーバーライドするためにファイルを使用しています。私はもともと次のコードを使用して、その内容をに含めましたsettings.py
。
私は最近そのexecfile
機能を見つけて、次のようなものに切り替えました:
どちらも意図したとおりに機能しますが、落とし穴がないかどうか、一般的にどちらのアプローチがより推奨されているか、またその理由が知りたいです。
python - execfileを使用したEclipse PyDev未定義変数
私は PyDev を初めて使用するので、これは私が持っている質問に対する簡単な答えかもしれません。
私が PyDev に取り込んでいるコードは、インポートの代わりに execfile を使用して、別のファイルからクラスを取り込みます。コードを制御できないため、インポートに変更できません。
execfile が取り込むクラスごとに未定義の変数を取得します。
execfile を介して持ち込んだクラスを PyDev に認識させる方法はありますか。PyDev で暗黙的なインポートを行う方法が何かあるのでしょうか?
python - 他のファイルの作業ディレクトリにあるexecfile
私はこのような構造を持っています:
私はいくつかの同様の質問を見つけました、そして答えは私にこれをもたらします:
問題は、myMain.pyを実行するとstartup.pyでインポートが失敗することです。
ただし、startup.pyを直接実行すると機能します。どんな助けでもいただければ幸いです。
python - Pythonのexecfile()、ユーザー入力に使用
ユーザーからファイル名を取得し、それを使用してファイルを実行しようとしてexecfile()
います。以下は私のコードです:
私はそれが次のように機能することを理解しexecfile()
ています:
ファイル名が変数として渡されるときにこれを行う方法がわかりません。私はPython2.7を使用しています。
python - Pythonスクリプト内でargparseを使用してPythonスクリプトを実行する
2 つの異なる Python スクリプトを取得しました。1 つ目は argparse を使用して追加の引数 (arg.py と呼びます) を取得し、2 つ目はメイン スクリプト (main.py) です。
main.py 内で arg.py を呼び出したいのですが、その方法がわかりません。コマンド execfile を調べましたが、うまく機能しませんでした。
main.pyに入れようとし
execfile('arg.py -h')
ましたが、python は存在しないファイル 'arg.py -h' を見つけようとしました。誰もそれを行う方法を知っていますか?
前もって感謝します
python - 別のPythonファイルを実行するpylabでPythonファイルを実行するにはどうすればよいですか?
要求したファイルを実行するスタートアップコンフィギュレーションを作成したいと思います。これまでのところ、私の構成ファイルは次のとおりです。
しかし、execfile
何らかの理由で機能しませ%run
ん。とにかくpylabで使用する必要がなくなります。これを回避する方法はありますか?
handler - 不明な URL ハンドラ タイプです。execfile が定義されていません
チュートリアル「Hello world」を実装しようとしています。
Python 3.1 を選択しても何も起こらず、ログには execfile(script_path, globals_) が定義されていないことが示されます。
Python 2.7を使用すると、ターミナルウィンドウが開きますが、しばらく何も起こらず、閉じます。ログファイルには次のように書かれています:
紹介のコードを使用しています。何がうまくいかないのかについてのアイデアはありますか?