Our great sponsors
-
Nuitka
Nuitka is a Python compiler written in Python. It's fully compatible with Python 2.6, 2.7, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, and 3.11. You feed it your Python app, it does a lot of clever things, and spits out an executable or extension module.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
false-positive-malware-reporting
Trying to release your software sucks, mostly because of antivirus false positives. I don't have an answer, but I do have a list of links to help get your code whitelisted.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Also worth checking out: Nuitka [1]. It actually compiles your Python into machine code (albeit still making use of the CPython interpreter).
Despite the title, pyinstaller doesn't really compile anything, it just bundles your bytecode and the interpreter into a binary. You can get similar-ish results the Nuitka by combining it with Cython but it's a lot more work.
[1] https://nuitka.net/
My favorite is the fairly new, but excellent PyOxidizer: https://github.com/indygreg/PyOxidizer
It's written in rust and can embed resources and dependencies in the executable.
How did you go about developing against the Starlark API, any IDE support?
[0] https://github.com/harelba/q/blob/master/pyoxidizer.bzl
PSA: If you distribute this kind of software, be ready to deal with many antivirus issues. [1] has helped but it's still a very manual and frustrating process on every release.
[1]: https://github.com/hankhank10/false-positive-malware-reporti...
PSA: If you distribute this kind of software, be ready to deal with many antivirus issues. [1] has helped but it's still a very manual and frustrating process on every release.
[1]: https://github.com/hankhank10/false-positive-malware-reporti...
I have found that a useful way to evade antivirus issues with PyInstaller is to build my own copy of the bootloader and encourage use of the 64 bit version over the 32 bit version (since most malware will use the 32 bit version to infect the most computers).
I have a GitHub CI job which is able to automate the process for each release. https://github.com/jellyfin/jellyfin-mpv-shim/blob/master/.g...
I really tried to use PyInstaller and Nuitka to deploy a Python command line [1] to Windows, Mac, and Linux users. We couldn't get around some system dependencies like OpenSSL needing to be available and not broken on user machines. We ended up re-writing the whole program from Python into Go [2].
Using Go solved so many long-tail bugs for us and just simplified the whole process of shipping code to user machines.
[1] https://github.com/wakatime/legacy-python-cli
[2] https://github.com/wakatime/wakatime-cli
I really tried to use PyInstaller and Nuitka to deploy a Python command line [1] to Windows, Mac, and Linux users. We couldn't get around some system dependencies like OpenSSL needing to be available and not broken on user machines. We ended up re-writing the whole program from Python into Go [2].
Using Go solved so many long-tail bugs for us and just simplified the whole process of shipping code to user machines.
[1] https://github.com/wakatime/legacy-python-cli
[2] https://github.com/wakatime/wakatime-cli
That’s one thing I like about Nim. It can compile to C++ and so can directly wrap C++ code. While Nim’s ecosystem is small it’s easy enough to wrap most any C/C++ library. It’s great for OpenCV. Some folks have been updating direct PyTorch C++ api (1)!
1: https://github.com/SciNim/flambeau