2016-06-08 112 views
2

这里是我的代码:Python模块工作在2.7,但不是在3.5

Animals/__init__.py

from Mammals import Mammals 

from Bird import Bird 

动物/ Mammals.py

class Mammals(object): 

    def __init__(self): 
     self.members = ['Tiger', 'Elephant','Wild Cat'] 

    def print_members(self): 
     for member in self.members : 
      print('this is a member :' + member) 

动物/ Bird.py

class Bird(object): 

    def __init__(self): 
     self.birds = ['sparrow','robbin','duck'] 

    def print_members(self): 
     print('printing birds in bird class') 
     for bird in self.birds: 
      print('this is a bird '+ bird) 

test.py

from Animals import Mammals, Bird 

mam = Mammals() 
bird = Bird() 

mam.print_members() 

bird.print_members()  

我已经安装了Python 3(MacOSX),并将其与virtualenv一起使用。这段代码在2.7下正常工作,但它不适用于python3.5。它总是给出ImportError: No module named Mammals

+0

它是从动物/ __ init__.py – vidyasagarr7

+2

'从.Mammals导入哺乳动物'一个点在这里不见了。命令'2to3'将为你做到这一点。 – gdlmx

+0

@感谢很多。解决了问题。 – vidyasagarr7

回答

3

Python 3区分了相对和绝对导入,不再支持隐式相对导入。

您的代码在运行python2因为解析器意味着BirdsMammals相对进口,但python3停止这样做。

运行2to3为您的文件将修复它。

from .Mammals import Mammals 
from .Bird import Bird 
相关问题