【问题标题】:Kivy buildozer docker: No buildozer.spec found in the current directory. AbandonKivy buildozer docker:在当前目录中找不到 buildozer.spec。放弃
【发布时间】:2020-10-18 12:23:10
【问题描述】:

根据https://github.com/kivy/buildozer/ 上的说明构建了一个 buildozer Docker,我尝试运行它并得到一个错误:

kivyproject $ ls
main.py
buildozer.spec
setup.py
[...]
kivyproject $ docker run --volume "$(pwd)":/home/user/hostcwd buildozer android debug
# Ensure build layout
No buildozer.spec found in the current directory. Abandon.

另外,我发现在kivyproject 旁边创建了一个名为kivyproject;C 的空目录。

发生了什么事?

我正在通过 Git bash shell 在 Windows 上运行。

【问题讨论】:

    标签: python docker kivy buildozer


    【解决方案1】:

    我的问题是 Docker 传递给 --volume 的字符串没有被 Git bash shell 自动翻译成 Windows 路径,所以 Docker 期望这样:

    --volume "c:\...\kivyproject:/home/user/hostcwd"
    

    但得到了这个:

    --volume "/c/.../kivyproject:/home/user/hostcwd"
    

    解决方案是用cygpath -w 包裹pwd

    kivyproject $ docker run --volume "$(cygpath -w $(pwd))":/home/user/hostcwd buildozer android debug deploy
    

    共享缓存也是个好主意,以免每次都重新下载SDK和NDK:

    kivyproject $ docker run --volume "$(cygpath -w $HOME/.buildozer)":/home/user/.buildozer --volume "$(cygpath -w $(pwd))":/home/user/hostcwd buildozer android debug deploy
    

    为了解决这个问题,我将Dockerfile 的最后一行从ENTRYPOINT ["buildozer"] 更改为ENTRYPOINT ["bash"],然后我可以运行docker run --volume [...] -it bulldozer,得到一个shell 并看到它看到的是一个空目录。然后我注意到在我的工作目录旁边创建了一个名为 workingdirname;C 的目录,并且怀疑是 cygwin 路径恶作剧。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-03
      • 1970-01-01
      • 2017-05-03
      相关资源
      最近更新 更多