【问题标题】:Why is kivy not working in Visual Studio code?为什么 kivy 在 Visual Studio 代码中不起作用?
【发布时间】:2021-01-22 06:29:59
【问题描述】:

我正在用 kivy 编写一段代码,并安装了所有的包。

当我运行代码时,它仍然显示“没有名为 kivy 的模块”。

这些模块是从命令提示符和 VS 代码终端安装的,尽管几天前这段代码运行良好。今天我打开它,它告诉我这个错误

这是我的代码

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()

【问题讨论】:

  • 为你正在使用的解释器安装 kivy
  • @luigigi 你能详细说明一下吗?
  • 您可能为不同的解释器/python 版本安装了 kivy。所以要么你必须在 VS 代码中选择一个安装了 kivy 的解释器,要么你必须为你现在使用的解释器安装 kivy。您可以在错误消息中看到您正在使用的 python 的路径
  • 好的,@luigigi 我会试试看...我使用的是哪个解释器?...在​​ vs 代码中
  • 您应该了解虚拟环境的概念。没有关于你应该使用什么解释器的答案

标签: python visual-studio-code kivy


【解决方案1】:

正如cmets中人所说,原因是终端使用的Python环境不包含模块。

解决方法:请在VS Code左下角选择安装模块“kivy”的Python环境,使用快捷键Ctrl+Shift+`打开一个新的VS Code终端,会自动进入选中的环境。

检查:我们可以使用命令“pip --version”或“python --version”来检查终端使用的是哪个Python以及模块安装在这个位置:

参考:Python environment in VS Code

【讨论】:

  • @Eishaan_Siingh - 这个问题解决了吗?
  • 不,实际上我是一个初学者编码器,我仍在尝试找到我将 Kivy 文件下载到的路径,但是是的,感谢您,我实际上已经想出了如何在 VS Code 中创建一个虚拟环境。 ...希望我能够解决这个问题...非常感谢您
【解决方案2】:

您只需要选择安装 kivy 所用的正确 python 版本。 如下图所示,单击底部以选择右侧。 Change python interpreter

【讨论】:

    猜你喜欢
    • 2022-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多