In order to improve security and support Python 3.11, there are significant changes in Pyarmor 8.0
New features
- Support Python 3.11
- Introduce 3 new commands: gen, cfg, reg
- Introduce BCC Mode, an irreversible obfuscation method
- Introduce RFT mode, an irreversible obfuscation method
- Localize and internationalize runtime error messages
- Check expired date by NTP server
Fix bugs for old modes
- Fix bug (#908):
--mix-str
of commandobfuscate
doesn't work if there is encoding line
Import Notes for Pyarmor prior to 8.0
In future only bug fix for old commands, no new features for old commands.
The old commands obfuscate
, licenses
etc. still could be used, but there have some changes.
There are 3 cases for old users after Pyarmor 8.0 is released:
1. Never upgrade to 8.0+
-
SPP mode doesn't work
In order to use SPP mode, it's necessary to upgrade Pyarmor to 8.0+
-
Command
pyarmor register
without any argument return404
errorIt is used to query registration information in old Pyarmor, but now license server doesn't serve this web api.
Instead use
pyarmor -v
to make sure it's not trial version. -
Registering Pyarmor by
pyarmor register pyarmor-regcode-xxxxxx.txt
can be used no more than 10 timesIn order to use Pyarmor in new machine, CI server or docker, check the second method described in the registration file "pyarmor-regcode-xxxxxx.txt":
Downloading "pyarmor-regfile-xxxxxx.zip" once, use this `.zip` file to register Pyarmor later.
2. Upgrade to 8.0 but only use old features
By default, command pyarmor
only accepts new commands, there are 3 ways to use old commands such as obfuscate
, licenses
:
- Use
pyarmor-7
insteadpyarmor
- Export environment variable
PYARMOR_CLI=7
, then still usepyarmor
- Any way to call entry point
pyarmor.pyarmor:main_entry
3. Upgrade to 8.0 and use new features
-
Follow new EULA of Pyarmor. It's a big change for old personal license, because new license only allows one proudct.
-
Not all old licenses could be upgraded to new license freely, refer to
Pyarmor licenses -
The old commands need not internect connection, but new command need
-
The old commands support Python 2.7~3.10, but new command only support Python 3.7+
Refer to Import Notes