鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    使用一键安装过程中遇到程序崩溃

    已定时 已固定 已锁定 已移动
    一键安装
    一键安装崩溃 科学上网
    3
    3
    227
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 1
      1187125301
      最后由 编辑

      code_text
      Traceback (most recent call last):
        File "/tmp/fishinstall/install.py", line 134, in <module>
          main()
        File "/tmp/fishinstall/install.py", line 123, in main
          run_tool_file(tools[code]['tool'].replace("/","."))
        File "/tmp/fishinstall/tools/base.py", line 1476, in run_tool_file
          if tool.run()==False: return False
        File "/tmp/fishinstall/tools/tool_install_proxy_tool.py", line 145, in run
          self.install_proxy_tool()
        File "/tmp/fishinstall/tools/tool_install_proxy_tool.py", line 134, in install_proxy_tool
          FileUtils.new(path=desktop_path,name="启动代理.desktop",data=start_clash_new_terminal_desktop.replace("{script_path}",clash_home+"start_clash.sh"))
        File "/tmp/fishinstall/tools/base.py", line 1220, in new
          with open(path+name,"w") as f:
      NotADirectoryError: [Errno 20] Not a directory: '/home/robot/Desktop/启动代理.desktop'
      
      
      小鱼小 1 条回复 最后回复 回复 引用 0
      • 小伊小
        机器人小伊
        最后由 编辑

        从提供的错误信息来看,程序在尝试创建一个名为“启动代理.desktop”的文件时遇到了问题。错误类型是 NotADirectoryError,具体错误信息是 [Errno 20] Not a directory,这表示程序试图在一个不是目录的路径上创建文件。

        错误发生在以下代码行:

        with open(path+name,"w") as f:
        

        这里的 path 变量应该指向一个目录,但是根据错误信息,'/home/robot/Desktop/启动代理.desktop' 被解释为路径,而实际上它应该是一个文件名(加上前面的目录路径)。

        从代码逻辑来看,path 和 name 是通过以下方式组合起来的:

        FileUtils.new(path=desktop_path,name="启动代理.desktop",data=start_clash_new_terminal_desktop.replace("{script_path}",clash_home+"start_clash.sh"))
        

        这里的 desktop_path 应该是一个目录路径,它应该指向用户的桌面目录。问题可能出在 desktop_path 的值不正确或者没有被正确设置。

        解决步骤:

        1. 检查 desktop_path 的值:

          • 确保 desktop_path 变量正确指向了用户的桌面目录。通常这个路径在 Linux 系统中是 /home/用户名/Desktop。
          • 可以在出错前的代码中添加打印语句来查看 desktop_path 的值:
            print("Desktop path:", desktop_path)
            
        2. 确保目录存在:

          • 在尝试创建文件之前,确保 desktop_path 指向的目录确实存在。如果不存在,你需要先创建这个目录。
          • 可以使用 os.makedirs(desktop_path, exist_ok=True) 来确保目录存在。
        3. 修改代码:

          • 如果 desktop_path 包含了文件名(即不应该包含),则需要从 desktop_path 中移除文件名部分,只保留目录路径。
        4. 重新运行安装程序:

          • 在做了上述修改后,重新运行安装程序看问题是否解决。

        通过这些步骤,你应该能够定位并解决问题。如果 desktop_path 是通过环境变量或其他配置动态获取的,确保这些配置正确无误。


        以上为生成回答,仅供参考~

        我是小伊,已接入ChatGpt,所有回复,仅供参考~

        1 条回复 最后回复 回复 引用 0
        • 小鱼小
          小鱼 技术大佬 @1187125301
          最后由 编辑

          @1187125301 收到,抽空更新下

          新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

          1 条回复 最后回复 回复 引用 0
          • 第一个帖子
            最后一个帖子
          皖ICP备16016415号-7
          Powered by NodeBB | 鱼香ROS