在我https://docs.python.org/2/tutorial/modules.html阅读的所有内容中, main.py 代码都可以正常运行。我不能为我的生活弄清楚它为什么不起作用。
版本等。
vagrant@vagrant-ubuntu-precise-64:/vagrant/monkey$ python --version
Python 2.7.3
目录结构
vagrant@vagrant-ubuntu-precise-64:/vagrant/monkey$ ll
total 6
drwxrwxrwx 1 vagrant vagrant 0 Jul 30 07:18 ./
drwxrwxrwx 1 vagrant vagrant 4096 Jul 30 07:04 ../
-rwxrwxrwx 1 vagrant vagrant 76 Jul 30 07:09 abc.py*
-rwxrwxrwx 1 vagrant vagrant 76 Jul 30 07:10 bcd.py*
-rwxrwxrwx 1 vagrant vagrant 43 Jul 30 06:56 main.py*
abc.py
# abc module
def bar():
print 'abc.bar called.'
return None
bcd.py
# bcd module
def foo():
print 'bcd.foo called.'
return None
main.py
import abc
import bcd
abc.bar()
bcd.foo()
错误
vagrant@vagrant-ubuntu-precise-64:/vagrant/monkey$ python main.py
Traceback (most recent call last):
File "main.py", line 5, in <module>
abc.bar()
AttributeError: 'module' object has no attribute 'bar'
答案 0 :(得分:6)
abc
is a builtin Python module。将您的abc.py
重命名为其他内容。
答案 1 :(得分:1)
您的代码没有任何问题。但是abc是一个内置模块。尝试做locate abc.py
,您应该看到如下行:
/usr/lib/python2.6/abc.py
/usr/lib/python2.6/abc.pyc
尝试重命名模块,或搜索SO以查找Import Local module over global python
之类的内容