1

私が見ているいくつかのコードには、次のステートメントがあります。

from math import exp, sqrt, ceil 

ただし、プロジェクト フォルダーには math というフォルダーはなく、exp、sqrt、ceil という名前のモジュールはありません。私の質問は、基本的に、これらのモジュールがどこからインポートされているのか、それらや他の同様のファイルをどのように見ることができるのかということです。前もって感謝します。

4

5 に答える 5

1

混乱した用語があります。この場合、mathはモジュールであり、exp, sqrt, ceilはそれが定義する関数です。通常は ですfrom <module> import <function/class>mathすべての Python インストールに含まれる基本モジュールです。Python には、モジュールを探す特定の場所のセットがあります。この場合、mathC で記述された動的にロードされるモジュールになります。

次のようにして、それがどこから来たのかを知ることができます。

import math
math.__file__

ただし、これにより、インタープリターに組み込まれているものに対してエラーが発生することに注意してください。

于 2012-08-09T03:48:45.560 に答える
0

You are importing a standard Python module. See here for the documentation for the math module, and here for the full standard library.

The location of the module on your filesystem varies across environments. Don't bother trying to locate stuff there. Just bookmark the documentation.

于 2012-08-09T03:47:20.870 に答える
0

Python 標準ライブラリが表示されています。それらは、PYTHONPATHで一致するモジュールを検索することによって解決されます。PYTHONPATH に加えて、Python スクリプトの任意のサブフォルダーからインポートできます。__init__.py

于 2012-08-09T03:47:28.740 に答える
0

このmathモジュールは Python の標準ライブラリの一部であり、どの Python インストールでも常に利用できます。ただし、関数は組み込みではないため、インポートする必要があります。

于 2012-08-09T03:47:46.310 に答える
0

spam という名前のモジュールがインポートされると、インタープリターは最初にその名前の組み込みモジュールを検索します。見つからない場合は、変数 sys.path で指定されたディレクトリのリストで spam.py という名前のファイルを検索します。sys.path は次の場所から初期化されます。

- The directory containing the input script (or the current directory).
- PYTHONPATH (a list of directory names, with the same syntax as the shell variable PATH).
- the installation-dependent default.

初期化後、Python プログラムは sys.path を変更できます。実行中のスクリプトを含むディレクトリは、標準ライブラリ パスの前の検索パスの先頭に配置されます。これは、ライブラリ ディレクトリ内の同じ名前のモジュールの代わりに、そのディレクトリ内のスクリプトが読み込まれることを意味します。意図した置換でない限り、これはエラーです。詳細については、セクション標準モジュールを参照してください。

シェルから次のように入力して、デフォルトの sys.path を取得できます。

            >>> import sys
            >>> print sys.path
            ['', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/python2.6/dist-packages/gst-0.10', '/usr/lib/pymodules/python2.6', '/usr/lib/python2.6/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.6/gtk-2.0', '/usr/local/lib/python2.6/dist-packages']
于 2012-08-09T03:53:20.410 に答える