我知道这是一个非常常见的错误,通常可以通过重命名模块或更正导入来解决(从我能想到的结果),但是我尝试过在stackoverflow上找到的不同的建议,所以我发布了另一个AttributeError问题。
我有一个名为build_database.py的代码,它调用另一个代码如下:
import csv
import os
import make_sig_files
import add_to_DB_tables
...
## Calls to 2 other python codes...
make_sig_files.make_files() # works!
add_to_DB_tables.make_DB(repoURL) # AttributeError :(
...
以下是add_to_DB_tables.py的内容:
import boto.dynamodb2
from boto.dynamodb2.table import Table
from boto.dynamodb2.items import Item
from os import listdir
from os.path import isfile, join
from collections import defaultdict
import time
import sys,os
import subprocess
def main():
make_DB("some_repo_URL")
def make_DB(repoURL):
...
## some other functions here...
if __name__ =='__main__':
main()
以下是运行build_databases.py时产生的错误:
Traceback (most recent call last):
File "build_database.py", line 26, in <module>
add_to_DB_tables.make_DB(repoURL)
AttributeError: 'module' object has no attribute 'make_DB'
此外,如果有帮助,请查看make_sig_files.py的内容:
import sys,os
import subprocess
from subprocess import check_output
from subprocess import Popen, PIPE
def main():
make_files()
def make_files():
...
## some other functions here...
if __name__ =='__main__':
main()
我也尝试删除我运行此目录的目录中的所有.pyc文件,但它没有帮助。此外,如果从命令行运行,add_to_DB_tables.py可以正常工作。任何指针/建议都非常感谢!