首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python -自动生成可执行文件

python -自动生成可执行文件
EN

Stack Overflow用户
提问于 2022-08-12 12:07:52
回答 1查看 54关注 0票数 3

我有一个用Python编写的GUI程序。为了不必担心环境,它作为一个用PyInstaller构建的可执行文件分发。我可以通过模块中定义为MyModule.build()的函数运行此构建(因为对我来说,与项目本身一起管理该脚本更有意义)。

我想在某种程度上自动化这一点,这样当在Gitlab上添加一个新版本时,它可以由一个运行程序构建并附加到发行版中。我目前使用的方法是实用的,但很麻烦:

我使用Gitlab API下载发布版的标记源。我在跑步者的环境中运行python -m pip install -r {requirements_path}python -m pip install {source_path}。然后导入并运行MyModule.build()函数以生成可执行文件。然后通过Gitlab API上传并链接到发布版。

很明显中间的部分需要。对于类似的项目,最好的方法是什么?包和要求是否可以安装在一个单独的venv中,而不是运行在其中的运行脚本?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-12 17:49:45

一个工作流程是推送一个标记来创建您的发行版。以下作业具有rules:配置,因此它们仅在标记管道上运行。

一个作业将生成可执行文件。另一个作业将使用在第一个作业中创建的文件创建GitLab发行版。

代码语言:javascript
运行
复制
build:
  rules:
    - if: "$CI_COMMIT_TAG"  # Only run when tags are pushed
  image: python:3.9-slim
  variables:
    PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
  cache: # https://docs.gitlab.com/ee/ci/caching/#cache-python-dependencies
    paths:
      - .cache/pip
      - venv/
  script:
    - python -m venv venv
    - source venv/bin/activate
    - python -m pip install -r requirements.txt # package requirements
    - python -m pip install pyinstaller # build requirements
    - pyinstaller --onefile --name myapp mypackage/__main__.py
  artifacts:
    paths:
      - dist
create_release:
  rules:
    - if: "$CI_COMMIT_TAG"
  needs: [build]
  image: registry.gitlab.com/gitlab-org/release-cli:latest
  script: # zip/upload your binary wherever it should be downloaded from
    - echo "Uploading release!"
  release:  # create GitLab release
    tag_name: $CI_COMMIT_TAG
    name: 'Release of myapp version $CI_COMMIT_TAG'
    description: 'Release created using the release-cli.'
    assets: # link uploaded asset(s) to the release
      - name: 'release-zip'
        url: 'https://example.com/downloads/myapp/$CI_COMMIT_TAG/myapp.zip'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73333965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档