問題タブ [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 execfile()
Sander Marechal による「daemon.py」スクリプトを見つけました。これを使用して、テキストを出力する単純なテスト スクリプトを実行したいと考えています。「execfile()」なしでスクリプトを実行すると、daemon-example.pid が作成され、デーモンが動作しますが、「execfile()」を追加すると動作しません。
コードは次のとおりです。
python - Python: ラムダ内から、スコープ内にあるが名前空間内にない名前にアクセスする
次のコードを検討してください。
そしてfile.pyにはこれが含まれています:
これにより、「NameError: global name 'func1' is not defined 」というエラーが発生します。
ここで何が起こっているのかわかりません。file.py
のコードは、空のローカル名前空間で実行されます。
次に、そのコード内で新しい関数が定義され、すぐに正常に呼び出されます。つまり、関数はそのスコープに存在します。
では、なぜfunc1
ラムダ内で呼び出せないのでしょうか?
他の言語では、ラムダ/クロージャーは、それらが定義されているスコープにバインドされます。
Pythonのルールはどうですか? それらはスコープにバインドされていますか? 名前空間に?
python - 動的にロードされるスクリプトで定義された関数は相互に参照できません
ipython インタラクティブ シェル内にいるときに、スクリプトから関数を動的にロードしようとしています。たとえば、次のような python スクリプトがあるとします。
ファイル routines.py が次のようになっているとします。
ここでスクリプト script.py を実行すると、インタラクティブ シェルに入ります。次のように入力すると、g() への呼び出しが機能します。
ただし、次のように入力すると、g() の呼び出しは失敗します。
「グローバル名 f が定義されていません」というエラー メッセージが表示されます。ただし、対話型シェルで globals() と入力すると、出力に f と g が含まれていることがわかります。
これら2つの違いは何ですか?
アップデート:
以下は機能しますが、推奨される解決策ではないため、上記の問題に対するより良い解決策が必要です。
script.py を次のように変更すると:
routines.py を次のように変更します。
次に、対話型シェルで Reload() を呼び出してから g() を呼び出すと、機能します。ただし、グローバル名を宣言する必要があるため、これは推奨される方法ではありません。
更新 2:
問題は ipython とは無関係のようです。routines.py の最初のバージョンで Python シェルを起動し、次のように手動で入力します。
g() の呼び出しも失敗します。しかし、次の作品:
phantomjs - execFile が呼び出されていない
問題が発生しており、どこからトラブルシューティングを開始すればよいかさえよくわかりません。
少し変更した mocha-casperjsを使用しています。CasperJS は PhantomJS のラッパーです。テストの完了時に Growl 通知を統合しようとしています。
次のように、mocha.run を呼び出す前に通知を正常に実行できます。
ただし、これは失敗します。
Mocha や PhantomJS の根性についてはあまり知りません。Mocha が stdout などを食べて、execFile 呼び出しが失敗する可能性はありますか? 私が得ていないものは他にありますか?
ありがとう、ケビン
- - アップデート - -
プロットが厚くなります。casper オブジェクトを含めるだけで、execFile が強制終了されます。
「casperjs test.js」で以下のコードを実行すると、execFile が正常に出力されます。casper オブジェクトのコメントを外すと、何も出力されません。
python-2.7 - インポートと実行ファイルの違い
utils.py
という関数を含むファイルがありますf1()
。
別の Python スクリプトからにアクセスできimport utils
ます。2つの方法の違いは何ですか?execfile('utils.py')
f1()
python - 「for」ステートメントを使用して、Python で類似した名前の複数のスクリプトを参照するにはどうすればよいですか?
似たような名前の .py ファイルをいくつか実行したいと考えています。目標は、a1.py、a2.py、および a3.py の呼び出しです。以下のものを試しましたが、動作しません。「n」の各要素をファイル名に挿入して複数のスクリプトを実行するにはどうすればよいですか? 助けてくれてありがとう。