sayyid5416 / pyinstaller Goto Github PK
View Code? Open in Web Editor NEWCustomisable GitHub Action to package python scripts into executables for different OS's
License: MIT License
Customisable GitHub Action to package python scripts into executables for different OS's
License: MIT License
Pls see aliencaocao/netease_cloudmusic_discord_rpc#4
TLDR: i specified to use version.txt in the same dir as the source file for the exe version info but pyinstaller complains it is not found, even though ls
shows the file is there. I cannot reproduce this locally so I'm guess it has something to do with how this action works.
It would be good to being able to choose the PyInstaller version, as in some cases where the latest version is not the best.
Hi,
I am seeing this warning in my actions builds:
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/setup-python@v4, actions/checkout@v3, actions/upload-artifact@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
Are you planning to use latest versions of these dependencies in future versions?
Also, action/upload-artifact@v4
cannot be used for any artifact uploaded with actions/upload-artifact@v3
, it is in the breaking changes.
Thanks!
The readme example is Python 3.6:
https://github.com/sayyid5416/pyinstaller/blame/454cc5f88cbfd6a1f7f5e6b9b96a0216be7f1720/README.md#L111
The code uses features introduced in Python 3.9:
https://github.com/sayyid5416/pyinstaller/blame/454cc5f88cbfd6a1f7f5e6b9b96a0216be7f1720/src/mods.py#L60
The discrepancy causes the following error:
"TypeError: 'type' object is not subscriptable"
The easy fix for the discrepancy would be to use Python >=3.9 in the example, or you may want to consider using different import options to make the code compatible.
There is a fork with several very useful features such as being able to pass arguments to pyInstaller, I suggest it to be merged here before the codebases differ too much (easier now than later): https://github.com/Martin005/pyinstaller-action
Hi
I'm using pyinstaller-versionfile
in a prior to pyinstaller
to generate the version.rc
file. When the github action runs, the version.rc file is not present for pyinstaller
.
What am I doing wrong?
Here is an example of my actions.yml file
name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
pyinstaller_build:
runs-on: windows-latest
outputs:
version: ${{ steps.set_version.outputs.version }}
steps:
- name: Checkout code
uses: actions/checkout@v2
# Install dependencies
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: '3.11.7'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pyinstaller-versionfile
# Add step to create version file before PyInstaller build
- name: Create Version File
run: create-version-file version_metadata.yml --outfile version.rc
- name: LS version.rc (before pyinstaller)
run: |
ls ./
mkdir test
- name: Create Executable
uses: sayyid5416/pyinstaller@v1
with:
python_ver: '3.11.7'
pyinstaller_ver: '==6.3.0'
spec: 'presenterfocus.py'
requirements: 'requirements.txt'
upload_exe_with_name: 'PresenterFocus'
options: --onefile --windowed --icon "icon.png" --name "PresenterFocus"
- name: LS version.rc (after pyinstaller)
run: |
ls ./
# the version.rc and test dir are not present here
Add support for command line parameters which can be passed during runtime, and can be accessed in spec file.
More info: here
Hi there!
I wanted to know, would it be possible, or is it planned to add the option included in py installer namely the "--collect-all"?
It's very useful, especially for the pyGithub and plexAPI module for one of my projects, and when I add it it doesn't recognize it :)
Great work! I have this action that runs perfectly on windows-latest and ubuntu-latest, but fails to run on macos-latest with:
Run sayyid5416/pyinstaller@v1
with:
python_ver: 3.10
spec: ui.py
requirements: requirements.txt
upload_exe_with_name: s3backup
options: --onefile, --name "s3backup", --windowed
exe_path: ./dist
Run python "/Users/runner/work/_actions/sayyid5416/pyinstaller/v1/src/checks.py"
python "/Users/runner/work/_actions/sayyid5416/pyinstaller/v1/src/checks.py"
shell: /bin/bash --noprofile --norc -e -o pipefail {0}
env:
spec: ui.py
upload_exe_with_name: s3backup
File "/Users/runner/work/_actions/sayyid5416/pyinstaller/v1/src/checks.py", line 25
f"Unsupported input 'spec = {spec}' was provided. Supported types: {', '.join(supported_spec)}",
^
SyntaxError: invalid syntax
My action:
jobs:
pyinstaller-build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
steps:
- name: Create Executable
uses: sayyid5416/pyinstaller@v1
with:
python_ver: '3.10'
spec: 'ui.py'
requirements: 'requirements.txt'
upload_exe_with_name: 's3backup'
options: --onefile, --name "s3backup", --windowed
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.