問題タブ [python-module]

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

python - 「ImportError: No module named」エラーは私のコードに関連していないようです

Learn Python The Hard Way, 2nd Edition の演習 47を完了しようとしていますが、実行すると次のエラーが表示されます。tests/ex47_tests.py

私はこれに非常に慣れていないため、コード内で間違ったことをしていると思ったので、演習を正常に完了したと思われる GitHub ユーザーからこのレポを複製しました。

コードの関連部分が同一であるだけでなく、tests/ex47_tests.py彼から複製した を実行しようとすると、同じエラーが表示されます。だから今、私は迷っており、誰かが私のために解決策を持っていることを望んでいます. 何か案は?

0 投票する
3 に答える
4614 参照

python - Python モジュール: それらをインポートすると、メモリに格納されますか?

Python でのモジュールの作成とインポートに関する初心者向けのこの演習を終了しました。

モジュール内のすべてがコンピュータのメモリにインポートされるのだろうか?

コードが長くなり、インポートされたモジュールがより多くなるにつれて、後でメモリに影響がありますか?

このため、リソース効率の高いコードを記述するためにメモリ管理を知る必要がありますか?

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

python - Ubuntu に Python モジュールをインストールする方法

Pythonで関数を書きました。次に、それをモジュールにして、Ubuntu 11.04 にインストールしたいと考えました。これが私がしたことです。

  1. function.py ファイルとともに setup.py を作成しました。

  2. $Python2.7 setup.py sdist を使用してビルドされた配布ファイル

  3. 次にインストールしました $Python2.7 setup.py install

すべてうまくいっていました。しかし、後で、モジュールを自分のコードにインポートして使用したいと思いました。インポート エラーが発生しました: ImportError: No module named '-------'

PS。Googleで検索しましたが、特定の答えが見つかりませんでした。詳細な回答をいただければ幸いです。

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

python - module-under-test を再インポートしてコンテキストを失う

多くの Python モジュールは、クラスを定義せずに内部状態を保持します。たとえば、logging経由でアクセス可能ないくつかのロガーを維持しますgetLogger()

そのようなモジュールをどのようにテストしますか?
標準unittestツールを使用して、TestCaseクラス内のさまざまなテストで、テスト対象のモジュールを再インポートして、そのコンテキストが失われるようにしたいと考えています。これはできますか?

0 投票する
3 に答える
394 参照

python - モジュールのインポート中に奇妙なことが起こる

質問にこの見出しを付けるのは嫌いですが、実際には何が起こっているのかわかりません。

ロギングモジュールを使用したい別のプロジェクトを行っていました。コードはいくつかのファイルに分散されており、個別のファイル用に個別のロガー オブジェクトを作成する代わりに、コンテンツを含む logs.py を作成することを考えました

このクラスを(別のファイルで)使用します。

  1. ここで質問するために、問題全体を取り除きました。現在、a.py、b.py、main.py の 3 つのファイルがあります。3 つのファイルはすべて、logs.Logger クラスをインスタンス化し、デバッグ メッセージを出力します。
  2. a.py & b.pyは「ログ」をインポートし、デバッグ メッセージを出力します。
  3. main.pyインポート ログ、a & b ; 独自のデバッグ メッセージを出力します。

ファイルの内容は次のとおりです: http://i.imgur.com/XoKVf.png

b.py からのデバッグ メッセージが 2 回出力され、main.py から 3 回出力されるのはなぜですか?

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

python - 外部定義関数を使用したモジュール グローバルの変更

__all__モジュールのプロパティを介してモジュールで定義された関数を公開するために使用する非常に単純なデコレータ関数があります。パッケージ内の複数のモジュールに使用するため、パッケージの__init__.py.

モジュール(またはパッケージ)の を参照するため、定義内から使用できないため、現在次のようにしてい__all__ます。__all____init__.py

これは完全にうまくいくようです。ただし__global__、特にそのプロパティが文書化されていないように見えるため、プロパティを使用することが理想的な方法であるかどうかはわかりません(少なくともドキュメントには何も見つかりませんでした)。

そのためにうまく使用__globals__していますか、それともこれを機能させるためのより簡単で堅牢な方法がありますか?

編集:

__all__明確にするために、必ずしもモジュールのプロパティにアクセスする必要はありません。別の名前を簡単に使用して、同じ質問になってしまう可能性があります。__all__モジュール内のすべての公開オブジェクトを保持するという目的が私の意図と一致するため、使用しています。しかし同時に、私はそれに名前を付けることもできましたexposedFunctions。したがって、問題は、モジュールのグローバル プロパティにアクセスする方法についてです。

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

python - Python ローカル モジュール

いくつかのプロジェクト ディレクトリがあり、それらに固有のライブラリ/モジュールが必要です。たとえば、次のようなディレクトリ構造があるとします。

addで呼び出される関数があると仮定すると、最も単純なルーチンでmyfunctions.py呼び出すことができます。mycode.py

しかし、それについてより洗練するために、私はまたすることができます

これはこれを行うための最も慣用的な方法ですか?PYTHONPATH( ?) を変更することについても言及されてos.environ['PYTHONPATH']いますが、これまたは他のことを調べる必要がありますか?

また、importクラス ステートメント内に含まれるステートメントや、クラス定義を含む Python ファイルの先頭に定義されている他のインスタンスも見てきました。これを行う正しい/好ましい方法はありますか?

0 投票する
3 に答える
417 参照

python - リターンのようなものでPythonモジュールのインポートを終了することは可能ですか?

モジュールコード全体に別のインデントレベルを追加せずに、以下のモジュールコードを記述する方法があるかどうかを知りたいです。

私はこのようなものを探しています:

例外をスローしたくないことに注意してください。インポートは正常に渡されるはずです。

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

python - Python : インポートされたモジュールへのハンドルを取得する

特定のネットワーク スキャン ツール (nmap、xprobe、p0f など) を指定するオプションをユーザーに提供し、そのツールを使用して特定のサブネットをスキャンするアプリケーションを作成しました (ツールを再実装せず、シェルで呼び出すだけです)。アプリの応答を解析します)、結果を解析し、特定の形式で DB に格納します。このアプリケーションは基本的に、DB 内のデータを使用する別のアプリのフィーダー アプリケーションです。

すべてのスキャン ツール インターフェイスがプラグインとして実装されるようにコードを記述しました。構造は

したがって、新しいスキャン インターフェイスを追加するには、開発者が行う必要があるのは、(もちろん正しいセマンティクスで) tool.py ファイルを作成し、それを Plugins フォルダーにドロップすることだけです。

これを実現するには、実行時に正しい python モジュールをインポートできる必要があります。

ユーザーが入力する内容に応じて

これが私が追加したコードです

コードは正しく動作します。ただし、 PyInstaller (Windows/* Nix プラットフォーム用)を使用して 1 つの実行可能ファイルにバンドルしようとすると、find_module と load_module で多くの問題が発生し、その結果、ImportError が発生します (実行可能ファイルでパスが正しく展開されていない可能性があります)。減圧)。

私の質問は - Python で同じ機能を実現できる別の方法はありますか (うまくいけば PyInstaller でうまくいくかもしれません)。

以前、PyInstaller での回避策を探してこの質問をしましたが、Python での回避策を探すことを余儀なくされた回答はありませんでした。

0 投票する
3 に答える
14209 参照

python - Pythonモジュールを複数のファイルに分割するにはどうすればよいですか?

A、A1、A2の3つのクラスを含む単一のPythonモジュールがあります。A1とA2はAから派生しています。AにはA1とA2を操作する関数が含まれています。

これは、1つの.pyファイルにある場合はすべて正常に機能します。しかし、そのファイルはかなり長くなっているので、A1とA2をそれぞれのファイルに分割したいと思います。循環依存にもかかわらず、このファイルを分割するにはどうすればよいですか?