Django プロジェクトで Python 用の dnspython または easyzone モジュールをインポートして使用する際に問題が発生しています。同じ問題で DJango の外部でもこのスクリプトを試したので、この問題はフレームワークとは無関係であると確信しています。
内部のdnsレコードのゾーンファイルを開いて解析する簡単なスクリプトがあります。easyzone または dns モジュールのインポートに問題はありませんが、内部のメソッドにアクセスしようとすると、次のエラーが発生します。
Traceback (most recent call last):
File "fabfile.py", line 6, in <module>
z = easyzone.zone_from_file('example.com', '/var/namedb/example.com')
AttributeError: 'module' object has no attribute 'zone_from_file'
dnspython をインストールし、easy_install 経由で問題なく簡単にインストールしました。スクリプトの先頭にあるモジュールをエラーなしでインポートできます。IDE ヘルパーのライブラリへのパスも表示されます。しかし、easyzone または dns 内のメソッドにアクセスしようとするとエラーが発生し、IDE のコード補完にもメソッドがリストされないため、パスの問題であるか、インポート方法であると思われます。
失敗する私のコードは次のとおりです。
import os
import csv
import easyzone
import dns
z = easyzone.zone_from_file('example.com', '/var/namedb/example.com')
コード内のモジュール内を見ると、これらのメソッドが存在することがはっきりとわかります。それらにアクセスできないために何が間違っているのでしょうか?