2016-04-07 4 views
1

こんにちは私は私がPythonのimport下線モジュール

import csv 

ようcsvモジュールを使用していますが、それは

$> python generate_xml.py 
generate_xml.py:21: SyntaxWarning: name 'parser' is assigned to before global declaration 
    global parser 
Traceback (most recent call last): 
    File "generate_xml.py", line 2, in <module> 
    import csv 
    File "/usr/local/python2.5.1/lib/python2.5/csv.py", line 7, in <module> 
    from _csv import Error, __version__, writer, reader, register_dialect, \ 
ImportError: No module named _csv 
をスローするスクリプトを持っている私はいけない、いくつかのPythonの魔法が理解encounterd、それは

ありまし今日

私はcsv.pyファイルをチェックしましたが、これは私が見たものです

from _csv import Error, __version__, writer, reader, register_dialect, \ 
       unregister_dialect, get_dialect, list_dialects, \ 
       field_size_limit, \ 
       QUOTE_MINIMAL, QUOTE_ALL, QUOTE_NONNUMERIC, QUOTE_NONE, \ 
       __doc__ 
from _csv import Dialect as _Dialect 

ので、私は実行するのpythonコンソールをまして、私の質問はこれが何であるか、ある

>>> _csv 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name '_csv' is not defined 
>>> from _csv import Error 
>>> 

のようにそれを再入力? importステートメントで_(アンダースコア)は何をしますか?そしてなぜそれは私がちょうど大会_isのようないくつかのグーグルルックスを行なったし、ない持つべきであるよう

編集 更新トレースバック が、このバージョンは、システム上の第二として、ではない私

によってインストールされた_csvモジュールを見つけるカント任意の意味は、モジュールの検索パスを確認します

+0

これはあなたのシステムのPythonですか、それとも自分でインストールしたのですか? – snakecharmerb

+0

あなたはより多くのコードを表示し、トレースバックを完了できますか? –

+0

は追加情報 – WKordos

答えて

4

純粋なPythonモジュールの中には、パフォーマンス目的や低レベルの操作を処理するために、Cで書かれた関連モジュールがあります。 _csvは、csvモジュール用の関連モジュールです。興味があれば、ソースhereを見ることができます。

Pythonのビルドまたはインストール時に_csvモジュールをインストールする必要があります。これが標準的なCPythonインストールで見つからない場合(つまり、モバイルや組み込みデバイスなどの限られたプラットフォーム用にPythonが構築されていない場合)、インストールが壊れていたり壊れているため、再インストールする必要があります。

+0

で更新されています。リストsys.builtin_module_namesを確認しました。実際に_csvが1つの環境になくなっていて、別のものに存在しています。 – WKordos