I have a small app like this: pizza-shop$ tree . . └── pizzapy ├── __init__.py ├── menu.py └── pizza.py
1 directory, 3 files # menu.py from typing import List from pizza import Pizza MENU: List[Pizza] = [ Pizza('Margherita', 30, 10.0), Pizza('Carbonara', 45, 14.99), Pizza('Marinara', 35, 16.99), ] if __name__ == '__main__': print(MENU) # pizza.py import math class Pizza: name: str = '' size: int = 0 price: float = 0 def __init__(self, name: str, size: int, price: float) -> None: self.name = name self.size = size self.price = price def area(self) -> float: return math.pi * math.pow(self.size / 2, 2) def awesomeness(self) -> int: if self.name == 'Carbonara': return 9000 return self.size // int(self.price) * 100 print('pizza.py module name is %s' % __name__) if __name__ == '__main__': print('Carbonara is the most awesome pizza.') Now when I call the menu.py from command like it works as expected. pizza-shop$ python3 pizzapy/menu.py pizza.py module name is pizza [<pizza.Pizza object at 0x1035dbeb8>, <pizza.Pizza object at 0x1035fb2b0>, <pizza.Pizza object at 0x1036b6c50>] But it fails in REPL: pizza-shop$ python3 Python 3.7.3 (default, Mar 27 2019, 09:23:15) [Clang 10.0.1 (clang-1001.0.46.3)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> from pizzapy import menu Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Users/aruprakshit/python_playground/pizza-shop/pizzapy/menu.py", line 2, in <module> from pizza import Pizza ModuleNotFoundError: No module named 'pizza' >>> What is the reason of this inconsistency ? Thanks, Arup Rakshit a...@zeit.io _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor