3

python26 フォルダーに abc という名前のクラスを作成しました。別のファイルから参照しようとした

def FileRW():
   import re
   import os
   import abc

エラー Traceback (most recent call last): File "", line 1, in FileRW() File "C:\Python26\pyFileIOprog", line 4, in FileRW import ChangeList ImportError: No module named abc

どこが間違っているのか、誰か教えてください。C:\python26 への環境変数「パス」をセットアップしました

4

4 に答える 4

3

abcはPythonで配布されている標準ライブラリモジュールの名前なので、名前を一意の名前に変更することを強くお勧めします。

それを行ったと仮定すると、モジュールのファイルを、それをインポートするスクリプトと同じディレクトリに置くことができ、それが見つかります。sys.path別の場所に配置する場合は、その場所へのパスを変数に追加できます。次に例を示します。

import sys
sys.path.append('path/to/my/module')
# on Windows append something like 'C:\\path\\to\\my\\module' or r'C:\path\to\my\module'  

import my_abc  # should work now

...

モジュールの名前を変更しない限り、上記は機能しないことに注意してください。Pythonは、追加したディレクトリパスを検索する前に、標準モジュールを検索するためです。リストの先頭にモジュールのパスを挿入することでこれをオーバーライドできますが、sys.pathこれもお勧めしません。

モジュールのパスをシステムのモジュール検索パスに自動的に追加する場合は、名前.pthファイルを作成して、4つの特別なディレクトリのいずれかに配置できます。site.py詳細については、ファイルのオンラインドキュメントを参照してください。

于 2012-08-02T23:37:08.947 に答える
0

ファイルが呼び出されるとabc.py、それ自体をインポートしようとするImportErrorため、循環依存のために が発生します。プログラム ファイルに標準ライブラリのモジュールと同じ名前を付けないように注意してください。

于 2012-08-03T00:11:04.123 に答える
-1

abcはモジュール(abc.py)ですか、それともパッケージ(abdディレクトリ)ですか?

いずれにせよ、それらがpyFileIOprogと同じディレクトリに存在することを確認してください

于 2012-08-02T18:51:49.320 に答える