在运行 Mac 的 Docker 上创建 Pyinstaller 应用程序

问题描述 投票:0回答:1

我尝试使用 Pyinstaller 创建一个独立的 python 应用程序,该应用程序应该在 Windows、Linux 和 Mac 上运行并且可以重复地重新创建。 这个想法是使用 Docker 拥有一个固定的环境来创建应用程序并再次导出它。对于 Linux 和 Windows,我可以使用 https://github.com/cdrx/docker-pyinstaller 使其工作。

这个想法是让 docker 在其中创建一个功能齐全的 pyinstaller 应用程序(带有 GUI)并导出该应用程序。由于 pyinstaller 取决于软件包版本等,这应该在 docker 中修复,并且只应提供新的源代码来编译和导出新版本的软件。

在理想情况下(以及它如何与 Linux 和 Windows 配合使用),用户可以创建 docker 并编译软件本身:

docker build -t docker_pyinstaller_linux https://raw.githubusercontent.com/loipf/calimera_docker_export/main/linux/Dockerfile

docker run --rm -v "/path/to/app_source_code:/code/" -v "${PWD}:/code/dist/" docker_pyinstaller_linux

然而,对于 Mac,没有简单直接的解决方案。那里有一个 Mac docker 镜像 https://github.com/sickcodes/Docker-OSX,但是 docker 创建代码并不那么简单。

我的想法:

  1. 采取https://github.com/sickcodes/Docker-OSX/blob/master/Dockerfile.auto

  2. 最后添加miniconda的下载:

RUN chmod -R 777 /Users/user

### install miniconda to /miniconda
RUN curl -LO "http://repo.continuum.io/miniconda/Miniconda3-4.4.10-MacOSX-x86_64.sh"
RUN bash Miniconda3-4.4.10-MacOSX-x86_64.sh -p /miniconda -b
ENV PATH=/miniconda/bin:${PATH}
RUN conda update -y conda

### install packages from conda 
RUN conda install -c anaconda -y python=3.8
RUN apt-get install -y python3-pyqt5
... 

但是第一个命令已经由于

chmod: cannot access '/Users/user': No such file or directory
失败了,因为我处于与交互式会话不同的“环境”中(
/home/arch/OSX-KVM
)。有人可以帮我吗?

我知道这些询问代码片段的问题并不是最好的,我可以向您展示我尝试过的所有内容,但我怀疑它们会对任何人有帮助。我想要一个最小的 Mac 示例,无需用户登录或 gui 等(这应该可以使用 https://github.com/sickcodes/osx-optimizer)。它应该只安装了 miniconda(带有 pyinstaller 和一些软件包)。


其他信息: 我可以在 docker 环境中以交互方式运行 mac 环境中的先前命令,但希望在映像中永久修复这些命令:

docker pull sickcodes/docker-osx:auto    ### replace with docker with pyinstaller and packages
docker run -it \
    --device /dev/kvm \
    -p 50922:10022 \
    sickcodes/docker-osx:auto

最终理想的是,我们可以使用 OSX_commands 运行上述命令

pyinstaller file.spec



相关问题但没有解决方案:

python docker macos pyinstaller
1个回答
0
投票

请考虑 docker-pyinstaller 的这个新映像,它结合了您确定的基础映像和 batonogov/docker-pyinstaller 维护的 docker-pyinstaller 版本。现在我刚刚把这些东西放到了 github 上。

缺少什么:

  1. 有权使用 Mac 的人实际上测试了最终生成的二进制文件是否可以在 OSX 上运行。应该是这样,因为是 pyinstaller 生成的,很抱歉我自己没有测试过。
  2. 有人把它放在 Docker Hub 上。我希望 batonogov 这样做是为了与他非常有价值的图像保持一致。
© www.soinside.com 2019 - 2024. All rights reserved.