python - Kivy buildozer docker:在当前目录中找不到 buildozer.spec。放弃
问题描述
根据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
另外,我发现在called旁边创建了一个空目录kivyproject;C
。
到底是怎么回事?
我从 Git bash shell 在 Windows 上运行。
解决方案
我的问题是 Docker 传递给的字符串--volume
没有被 Git bash shell 自动翻译成 Windows 路径,所以 Docker 期望这样:
--volume "c:\...\kivyproject:/home/user/hostcwd"
但得到了这个:
--volume "/c/.../kivyproject:/home/user/hostcwd"
解决方案是pwd
用cygpath -w
:
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
from ENTRYPOINT ["buildozer"]
to的最后一行,ENTRYPOINT ["bash"]
然后我可以运行docker run --volume [...] -it bulldozer
,获取一个 shell 并看到它看到的是一个空目录。然后我注意到在我的工作目录旁边创建了一个目录,名为workingdirname;C
并怀疑是 cygwin 路径恶作剧。
推荐阅读
- android - 如何监听 SwitchPreferenceCompat 的变化
- django - 来自同一模型的两个或多个唯一外键(依赖链)
- jquery - 对多个页面使用单个 JQuery 文件导致“未捕获的类型错误”
- python - 发生 ConnectionError 时程序不会退出,但发生错误时会冻结
- reactjs - 我的 reactJS 组件中的 React-redux 状态未定义错误
- python-3.x - inbuild sum 和 pd.Series.sum 函数的结果之间的差异
- mongodb - AWS ec2 上 mongodb 4.2.8 中的连接问题
- gnuplot - 在 GNUPLOT 中将鼠标悬停在函数上时显示 x 和 y 值的标签,可能还有其他值
- javascript - 如何在正则表达式中传递变量
- spring-boot - 在转换方法中从 lambda 返回 null 或可为 null 的东西 - Webflux(Intellij 警告)