如何在Repl.it上运行Python Flet脚本?遇权限拒绝问题求助
解决Repl.it上运行Flet脚本的PermissionError问题
问题原因
Repl.it的沙盒环境会限制部分二进制文件的执行权限,Flet默认启动逻辑需要运行fletd服务进程,但该二进制文件在Repl.it的虚拟环境中没有执行权限,导致抛出PermissionError: [Errno 13] Permission denied。
解决方案
方案1:使用Flet Web模式启动(推荐)
直接以Web浏览器模式运行Flet应用,无需依赖本地fletd进程,适配Repl.it的环境:
修改main.py代码如下:
import flet as ft def main(page: ft.Page): page.add(ft.Text("Hello World")) page.update() if __name__ == "__main__": ft.app(target=main, view=ft.WEB_BROWSER, port=8080)
运行后,Repl.it会自动识别8080端口并生成预览链接,点击即可查看Flet应用。
方案2:手动赋予fletd执行权限
如果需要保留默认启动方式,可以尝试在代码中先修改fletd文件的权限:
import os import flet # 获取fletd二进制文件路径 fletd_path = os.path.join(os.path.dirname(flet.__file__), "bin", "fletd") # 添加执行权限 os.chmod(fletd_path, 0o755) # 后续正常编写Flet代码 import flet as ft def main(page: ft.Page): page.add(ft.Text("Hello World")) page.update() ft.app(target=main)
注:该方案可能受Repl.it沙盒限制,部分场景下无法生效,优先推荐方案1。
内容的提问来源于stack exchange,提问作者Al C
相关产品推荐
相关产品推荐

