I was writing a piece of code with kivy with all the packages installed.
When I run the code it still shows “No module named kivy”.
The modules were installed from both the command prompt and the VS code terminal though this code had worked fine just a few days ago. Today i opened it and it showed me this error
This is my code
from kivy.app import App from kivy.lang import Builder from kivy.uix.screenmanager import ScreenManager, Screen from kivy.properties import ObjectProperty from kivy.uix.popup import Popup from kivy.uix.label import Label from database import DataBase class CreateAccountWindow(Screen): namee = ObjectProperty(None) email = ObjectProperty(None) password = ObjectProperty(None) def submit(self): if self.namee.text != "" and self.email.text != "" and self.email.text.count("@") == 1 and self.email.text.count(".") > 0: if self.password != "": db.add_user(self.email.text, self.password.text, self.namee.text) self.reset() sm.current = "login" else: invalidForm() else: invalidForm() def login(self): self.reset() sm.current = "login" def reset(self): self.email.text = "" self.password.text = "" self.namee.text = "" class LoginWindow(Screen): email = ObjectProperty(None) password = ObjectProperty(None) def loginBtn(self): if db.validate(self.email.text, self.password.text): MainWindow.current = self.email.text self.reset() sm.current = "main" else: invalidLogin() def createBtn(self): self.reset() sm.current = "create" def reset(self): self.email.text = "" self.password.text = "" class MainWindow(Screen): n = ObjectProperty(None) created = ObjectProperty(None) email = ObjectProperty(None) current = "" def logOut(self): sm.current = "login" def on_enter(self, *args): password, name, created = db.get_user(self.current) self.n.text = "Account Name: " + name self.email.text = "Email: " + self.current self.created.text = "Created On: " + created class WindowManager(ScreenManager): pass def invalidLogin(): pop = Popup(title='Invalid Login', content=Label(text='Invalid username or password.'), size_hint=(None, None), size=(400, 400)) pop.open() def invalidForm(): pop = Popup(title='Invalid Form', content=Label(text='Please fill in all inputs with valid information.'), size_hint=(None, None), size=(400, 400)) pop.open() kv = Builder.load_file("my.kv") sm = WindowManager() db = DataBase("users.txt") screens = [LoginWindow(name="login"), CreateAccountWindow(name="create"),MainWindow(name="main")] for screen in screens: sm.add_widget(screen) sm.current = "login" class MyMainApp(App): def build(self): return sm if __name__ == "__main__": MyMainApp().run()
Advertisement
Answer
As people said in the comments, the reason is that the Python environment used by the terminal does not contain modules.
Solution: Please select the Python environment where the module “kivy” is installed in the lower left corner of VS Code, and use the shortcut key Ctrl+Shift+` to open a new VS Code terminal, it will automatically enter the selected environment.
check: We can use the command “pip --version
” or “python --version
” to check which Python the terminal is using and the module is installed in this location:
Reference: Python environment in VS Code.