重要: This is the last release of PyInstaller supporting Python 2.7. Python 2 is end-of-life, many packages are about to drop support for Python 2.7 - or already did it.
[SECURITY] (Win32) Fix CVE-2019-16784: Local Privilege Escalation caused by insecure directory permissions of sys._MEIPATH. This security fix effects all Windows software frozen by PyInstaller in “onefile” mode. While PyInstaller itself was not vulnerable, all Windows software frozen by PyInstaller in “onefile” mode is vulnerable.
If you are using PyInstaller to freeze Windows software using “onefile” mode, you should upgrade PyInstaller and rebuild your software.
ldconfig
is missing/inoperable.
(
#4261
)
ucrtbase.dll
before loading the Python library. This works around unresolved symbol errors
when loading
python35.dll
(or later) on legacy Windows (7, 8, 8.1)
systems
with Universal CRT update is not installed. (
#1566
,
#2170
,
#4230
)
strndup
and
strnlen
to be used on
pattforms one of these is missing.
strndup
and
strnlen
are available.
--windowed
option if first script is a
.pyw
文件。
This might still be overwritten in the spec-file. (
#4001
)
--upx-exclude
, which allows the user to prevent
binaries from being compressed with UPX. (
#3821
)
--debug=import
,
--debug=bootloader
,和
--debug=noarchive
command-line options. (
#3808
)
datas
在
spec
files to
binaries
instead of the internal
datas
. (
#2326
,
#3694
)
--onefile
to
--onedir
on consecutive
runs. (
#3662
)
QCoreApplication
constructor in
Qt5LibraryInfo
. Now the
core application’s initialization and finalization in addition to system-wide
and application-wide settings is safer. (
#4121
)
BinariesPath
. (
#4048
)
pywin32-ctypes
version 0.2.0, the minimum version which supports
Python 3.7. (
#3763
)
compat.architecture()
,
compat.system()
and
compat.machine()
have been replace by variables of the same name. This
avoids evaluating the save several times.
--debug
argument, rather than assuming a
default of
all
. (
#3737
)
eth_hash
包。
(
#3681
)
--help
to state that the
--debug
argument
requires an option. Correctly format this argument in the Sphinx build
process. (
#3737
)
pyproject.toml
to fix
installation with pip 19.0.
test_stderr_encoding()
and
test_stdout_encoding()
on Windows Python 3.7 x64. (
#4144
)
test/requirements-tools.txt
. (
#3845
)
RemovedInPytest4Warning:
Applying
marks
directly
to
parameters
is
deprecated,
please
使用
pytest.param(...,
marks=...)
代替。
sudo:
false
标签。
(
#4140
)
QlibraryInfo
implementation reports incorrect values.
CI tests currently run on PyQt5 5.11.2. Many thanks to Bryan A. Jones for
taking this struggle.
--debug
now allows more debugging to be activated more easily. This
includes bootloader messages, Python’s “verbose imports” and store collected
Python files in the output directory instead of freezing. See
pyinstaller
–-help
for details. (
#3546
,
#3585
,
#3587
)
setup.py
specify Python versions this distribution is compatible with.
base_library.zip
reproducible: Set time-stamp of files. (
#2952
,
#2990
)
--bootloader-ignore-signals
to make the
bootloader forward all signals to the bundle application. (
#208
,
#3515
)
plistlib
is now used for generating
Info.plist
file. This allows passing complex and nested data in
info_plist
. (
#3532
,
#3541
)
warnings
module to
base_library.zip
. (
#3397
,
#3400
)
switch_root
. (
#2966
)
..
. (
#2641
,
#3491
)
LSUIElement=True
.
(
#1917
,
#2075
,
#3566
)
--resource
option. (
#2675
,
#3423
)
--icon
arguments and terminate with a
message. (
#3126
)
--debug
now expects an (optional) argument. Thus using
…
--debug
script.py
will break. Use
…
script.py
--debug
or
…
--debug=all
script.py
instead. Also
--debug=all
(which is the default if no
argument is given) includes
noarchive
, which will store all collected
Python files in the output directory instead of freezing them. Use
--debug=bootloader
to get the former behavior. (
#3546
,
#3585
,
#3587
)
--add-data
and
--add-binary
must no
longer be empty, use
.
instead. (
#3066
)
PyQt5.QtNetwork
. (
#3511
,
#3520
)
pyi-bootloader-ignore-signals
to be set in the archive. (
#208
,
#3515
)
waitpid
而不是
wait
to avoid the bootloder parent process gets
signaled. (
#2966
)
--windowed
mode. Not enforcing this programmatically in the bootloader
allows to control behavior using
Info.plist
options - which can by set in
PyInstaller itself or in the
.spec
-file. (
#1917
,
#2075
,
#3566
)
setenv()
call when
HAVE_UNSETENV
is not defined. (
#3722
,
#3723
)
--windowed
is independent of
--onedir
.
(
#3383
)
imp.find_module()
are not detected.
LD_LIBRARY_PATH
. (
#3236
)
info_plist
for
plistlib
functionality and
use an example more aligned with real world usage. (
#3532
,
#3540
,
#3541
)
requirements.txt
文件。
requirements_for_package()
and
collect_all()
helper functions for
hooks.
enum
to base_library.zip, required for module
re
in
Python 3.6 (and
re
is required by
warnings
).
format_binaries_and_datas()
(which converts hook-style tuples into
TOC
-style tuples) to binaries and datas added through the hook api.
get_module_file_attribute()
helper function..
collect_dynamic_libc()
.
format_binaries_and_datas()
, the file not found is
pyconfig.h
.
(
#1539
,
#3348
)
is_module_satisfies()
返回
False
for packages
not found. (
#3428
,
#3481
)
libzmq.cp36-win_amd64.pyd
.
--console
mode set
LSBackgroundOnly=True
in``Info.plist`` to
hide the app-icon in the dock. This can still be overruled by passing
info_plist
在
.spec
-file. (
#1917
,
#3566
)
plistlib
for generating the
Info.plist
file. (
#3532
,
#3541
)
__import__
. (
#3574
)
skipif_no_compiler
.
pyinstaller
-h
to verify it works.
test_setuptools_nspkg
no longer modifies source files.
appveyor.yml
.
wscript
for
waf
2.0.
--debug
turn of FORTIFY_SOURCE to ease
debugging.
QlibraryInfo
implementation reports incorrect values.
--onefile
and something like
python-daemon
.
%TEMPDIR%
) includes some Unicode
characters. This does not happen with all Unicode characters, but only some
and seems to be a windows bug. As a work-around please upgrade to Python 3
(
#2754
,
#2767
).
@…
) (#3100).
--datas
, #1990) and
binaries (
--binaries
, #703)
python.dll
.
multiprocess
spawn mode on POSIX OSs (#2322, #2505, #2759, #2795).
getenv()
SetEnvironmentVariableW()
The bootloader build was largely overhauled. In the wscript, the build no longer depends on the Python interpreter’s bit-size, but on the compiler. We have a machine for building bootloaders for Windows and cross-building for OS X. Thus all mainteriner are now able to build the bootloaders for all supported platforms.
Add “official” build-script.
(GNU/Linux) Make –no-lsb the default, add option –lsb.
Largely overhauled Vagrantfile:
Largely overhauled wscript:
(GNU/Linux) for 64-bit arm/aarch ignore the
gcc
flag
-m64
(#2801).
vcruntime140.dll
to_win_includes for Python 3.5 an 3.6
(#2487)
enumerate_instructions()
(#2720)
pefile
and
macholib
, use the releases from PyPI.
(#1920, #2689)
--onefile
and something like
python-daemon
.
%TEMPDIR%
) includes some Unicode
characters. This does not happen with all Unicode characters, but only some
and seems to be a windows bug. As a work-around please upgrade to Python 3
(#2754, #2767).
旧版本