Convert Python files to Windows executable files online using GitHub Actions
PY to EXE is a free, open-source online tool that converts Python (.py) files to executable (.exe) files. No installation required - simply upload your Python script through our web interface and download the converted executable file.
Our service is perfect for developers who want to distribute their Python applications to users who don't have Python installed. The generated executable files work on Windows without requiring any additional dependencies.
- π Free and open source - No registration required
- π Secure conversion process - Files processed in isolated GitHub Actions
- β‘ Fast conversion - Typically completes in 1-2 minutes
- π¦ No installation required - Works entirely in your browser
- π― Simple drag-and-drop interface - Easy to use for everyone
- π Multi-language support - English, Japanese, Russian, Chinese, French, Spanish, German
- π§Ή Automatic cleanup - Source files deleted after conversion
- π± Responsive design - Works on desktop and mobile
This project uses a two-repository architecture:
Web Interface Repository (pytoexe)
- Next.js 16 web application with React 19 and TypeScript
- Handles file uploads and status tracking
- Beautiful, responsive user interface
- Multi-language internationalization
- GitHub API integration
Processing Repository (pytoexe-use)
- GitHub Actions workflow for automated processing
- PyInstaller-based conversion system
- Secure file handling and artifact management
- Automatic cleanup after processing
- Upload - Drag and drop your
.pyfile or click to select - Process - GitHub Actions automatically runs PyInstaller in a secure environment
- Download - Get your
.exefile from GitHub Actions artifacts - Cleanup - Source files are automatically deleted for security
- User uploads a
.pyfile through the web interface - Web app uploads the file to the processing repository via GitHub API
- GitHub Actions workflow automatically triggers
- PyInstaller converts the Python file to a standalone executable
- Converted file is available as a downloadable artifact
- Original Python file is automatically deleted from the processing repository
| Component | Technology |
|---|---|
| Frontend | Next.js 16, React 19, TypeScript, Tailwind CSS |
| Backend Processing | GitHub Actions, PyInstaller |
| Deployment | Vercel |
| Languages | TypeScript, Python |
| UI Components | Radix UI, Lucide Icons |
| Styling | Tailwind CSS, CSS Variables |
| Internationalization | Custom i18n system |
Visit our live demo at https://pytoexe.top/
This project requires a GitHub repository with Actions enabled. See SETUP_INSTRUCTIONS.md for detailed setup steps.
- Create a GitHub repository
- Add your own GitHub Actions workflow file at
.github/workflows/convert.ymlwith PyInstaller - Create a GitHub personal access token with
repoandworkflowscopes - Configure environment variables:
GITHUB_TOKEN- Your personal access tokenGITHUB_OWNER- Your GitHub usernameGITHUB_REPO- Your processing repository name
| Variable | Description | Example |
|---|---|---|
GITHUB_TOKEN |
Personal access token with repo and workflow scopes |
ghp_xxxxxxxxxxxx |
GITHUB_OWNER |
Your GitHub username | SymphonyIceAttack |
GITHUB_REPO |
Processing repository name | pytoexe-use |
Important:
GITHUB_REPOshould be your processing repository (e.g.,pytoexe-use), not the web interface repository.
- Isolated Processing: All Python files are processed in GitHub Actions (completely isolated environment)
- Automatic Cleanup: Source files are automatically deleted after conversion
- No Permanent Storage: No files are stored permanently on our servers
- Open Source: You can review all code in both repositories
- Transparent Process: Entire conversion process is visible and auditable
- All major Python versions (3.7+)
- Compatible with modern Python syntax and features
- GitHub has a 100MB file size limit per file
- For most Python scripts, this is more than sufficient
- If your project has large dependencies, consider optimizing your code
- Currently supports single
.pyfile conversion - For multi-file projects, ensure all dependencies are properly packaged
- Windows executable output only
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
# Clone the repository
git clone https://github.com/SymphonyIceAttack/pytoexe.git
cd pytoexe
# Install dependencies
npm install
# Start development server
npm run dev
# Run linting
npm run lint
# Format code
npm run formatThis project is licensed under the MIT License - see the LICENSE file for details.
This project supports multiple languages:
- πΊπΈ English (en)
- π―π΅ Japanese (ja)
- π·πΊ Russian (ru)
- π¨π³ Chinese (zh)
- π«π· French (fr)
- πͺπΈ Spanish (es)
- π©πͺ German (de)
To add a new language, please see our internationalization guide.
For issues, questions, or contributions:
- Website: https://pytoexe.top/
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Setup Guide: SETUP_INSTRUCTIONS.md
- PyInstaller - The amazing tool that makes Python to EXE conversion possible
- GitHub Actions - For providing secure, scalable processing infrastructure
- Vercel - For excellent hosting and deployment platform
- Open Source Community - For the incredible tools and libraries that make this project possible
Made with β€οΈ by SymphonyIceAttack
