1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378
|
.\" Man page generated from reStructuredText.
.
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "PYINSTALLER" "1" "2025-09-13" "6.16.0" "PyInstaller"
.SH NAME
pyinstaller \- Configure and build a PyInstaller project in one run
.\" disable justification (adjust text to left margin only)
.ad l
\.SH SYNOPSIS
.sp
\fBpyinstaller\fP <options> SCRIPT...
.sp
\fBpyinstaller\fP <options> SPECFILE
.SH DESCRIPTION
.sp
PyInstaller is a program that freezes (packages) Python programs into
stand\-alone executables, under Windows, GNU/Linux, macOS,
FreeBSD, OpenBSD, Solaris and AIX.
Its main advantages over similar tools are that PyInstaller works with
Python 3.8\-3.11, it builds smaller executables thanks to transparent
compression, it is fully multi\-platform, and use the OS support to load the
dynamic libraries, thus ensuring full compatibility.
.sp
You may either pass one or more file\-names of Python scripts or a single
\fI\&.spec\fP\-file\-name. In the first case, \fBpyinstaller\fP will generate a
\fI\&.spec\fP\-file (as \fBpyi\-makespec\fP would do) and immediately process it.
.sp
If you pass a \fI\&.spec\fP\-file, this will be processed and most options given on
the command\-line will have no effect.
Please see the PyInstaller Manual for more information.
.SH OPTIONS
.SS Positional Arguments
.sp
scriptname
.INDENT 0.0
.INDENT 3.5
Name of scriptfiles to be processed or exactly one .spec file. If a .spec
file is specified, most options are unnecessary and are ignored.
.UNINDENT
.UNINDENT
.SS Options
.INDENT 0.0
.TP
.B \-h\fP,\fB \-\-help
show this help message and exit
.TP
.B \-v\fP,\fB \-\-version
Show program version info and exit.
.TP
.BI \-\-distpath \ DIR
Where to put the bundled app (default: ./dist)
.TP
.BI \-\-workpath \ WORKPATH
Where to put all the temporary work files, .log, .pyz and etc. (default:
\&./build)
.TP
.B \-y\fP,\fB \-\-noconfirm
Replace output directory (default: SPECPATH/dist/SPECNAME) without asking
for confirmation
.TP
.BI \-\-upx\-dir \ UPX_DIR
Path to UPX utility (default: search the execution path)
.TP
.B \-\-clean
Clean PyInstaller cache and remove temporary files before building.
.TP
.BI \-\-log\-level \ LEVEL
Amount of detail in build\-time console messages. LEVEL may be one of TRACE,
DEBUG, INFO, WARN, DEPRECATION, ERROR, FATAL (default: INFO). Also settable
via and overrides the PYI_LOG_LEVEL environment variable.
.UNINDENT
.SS What To Generate
.INDENT 0.0
.TP
.B \-D\fP,\fB \-\-onedir
Create a one\-folder bundle containing an executable (default)
.TP
.B \-F\fP,\fB \-\-onefile
Create a one\-file bundled executable.
.TP
.BI \-\-specpath \ DIR
Folder to store the generated spec file (default: current directory)
.TP
.BI \-n \ NAME\fR,\fB \ \-\-name \ NAME
Name to assign to the bundled app and spec file (default: first script\(aqs
basename)
.TP
.BI \-\-contents\-directory \ CONTENTS_DIRECTORY
For onedir builds only, specify the name of the directory in which all
supporting files (i.e. everything except the executable itself) will be
placed in. Use \(dq.\(dq to re\-enable old onedir layout without contents
directory.
.UNINDENT
.SS What To Bundle, Where To Search
.sp
\-\-add\-data SOURCE:DEST
.INDENT 0.0
.INDENT 3.5
Additional data files or directories containing data files to be added to
the application. The argument value should be in form of \(dqsource:dest_dir\(dq,
where source is the path to file (or directory) to be collected, dest_dir
is the destination directory relative to the top\-level application
directory, and both paths are separated by a colon (:). To put a file in
the top\-level application directory, use . as a dest_dir. This option can
be used multiple times.
.UNINDENT
.UNINDENT
.sp
\-\-add\-binary SOURCE:DEST
.INDENT 0.0
.INDENT 3.5
Additional binary files to be added to the executable. See the
\fB\-\-add\-data\fP option for the format. This option can be used multiple
times.
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.BI \-p \ DIR\fR,\fB \ \-\-paths \ DIR
A path to search for imports (like using PYTHONPATH). Multiple paths are
allowed, separated by \fB\(aq:\(aq\fP, or use this option multiple times.
Equivalent to supplying the \fBpathex\fP argument in the spec file.
.TP
.BI \-\-hidden\-import \ MODULENAME\fR,\fB \ \-\-hiddenimport \ MODULENAME
Name an import not visible in the code of the script(s). This option can be
used multiple times.
.TP
.BI \-\-collect\-submodules \ MODULENAME
Collect all submodules from the specified package or module. This option
can be used multiple times.
.TP
.BI \-\-collect\-data \ MODULENAME\fR,\fB \ \-\-collect\-datas \ MODULENAME
Collect all data from the specified package or module. This option can be
used multiple times.
.TP
.BI \-\-collect\-binaries \ MODULENAME
Collect all binaries from the specified package or module. This option can
be used multiple times.
.TP
.BI \-\-collect\-all \ MODULENAME
Collect all submodules, data files, and binaries from the specified package
or module. This option can be used multiple times.
.TP
.BI \-\-copy\-metadata \ PACKAGENAME
Copy metadata for the specified package. This option can be used multiple
times.
.TP
.BI \-\-recursive\-copy\-metadata \ PACKAGENAME
Copy metadata for the specified package and all its dependencies. This
option can be used multiple times.
.TP
.BI \-\-additional\-hooks\-dir \ HOOKSPATH
An additional path to search for hooks. This option can be used multiple
times.
.TP
.BI \-\-runtime\-hook \ RUNTIME_HOOKS
Path to a custom runtime hook file. A runtime hook is code that is bundled
with the executable and is executed before any other code or module to set
up special features of the runtime environment. This option can be used
multiple times.
.TP
.BI \-\-exclude\-module \ EXCLUDES
Optional module or package (the Python name, not the path name) that will
be ignored (as though it was not found). This option can be used multiple
times.
.TP
.BI \-\-splash \ IMAGE_FILE
(EXPERIMENTAL) Add an splash screen with the image IMAGE_FILE to the
application. The splash screen can display progress updates while
unpacking.
.UNINDENT
.SS How To Generate
.sp
\-d {all,imports,bootloader,noarchive}, \-\-debug {all,imports,bootloader,noarchive}
.INDENT 0.0
.INDENT 3.5
Provide assistance with debugging a frozen application. This argument may
be provided multiple times to select several of the following options. \-
all: All three of the following options. \- imports: specify the \-v option
to the underlying Python interpreter, causing it to print a message
each time a module is initialized, showing the place (filename or
built\-in module) from which it is loaded. See
\X'tty: link https://docs.python.org/3/using/cmdline.html#id4'\fI\%https://docs.python.org/3/using/cmdline.html#id4\fP\X'tty: link'\&. \- bootloader: tell the
bootloader to issue progress messages while initializing and starting the
bundled app. Used to diagnose problems with missing imports. \-
noarchive: instead of storing all frozen Python source files as an
archive inside the resulting executable, store them as files in the
resulting output directory.
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.BI \-\-optimize \ LEVEL
Bytecode optimization level used for collected python modules and scripts.
For details, see the section “Bytecode Optimization Level” in PyInstaller
manual.
.TP
.BI \-\-python\-option \ PYTHON_OPTION
Specify a command\-line option to pass to the Python interpreter at runtime.
Currently supports \(dqv\(dq (equivalent to \(dq\-\-debug imports\(dq), \(dqu\(dq, \(dqW <warning
control>\(dq, \(dqX <xoption>\(dq, and \(dqhash_seed=<value>\(dq. For details, see the
section \(dqSpecifying Python Interpreter Options\(dq in PyInstaller manual.
.TP
.B \-s\fP,\fB \-\-strip
Apply a symbol\-table strip to the executable and shared libs (not
recommended for Windows)
.TP
.B \-\-noupx
Do not use UPX even if it is available (works differently between Windows
and *nix)
.TP
.BI \-\-upx\-exclude \ FILE
Prevent a binary from being compressed when using upx. This is typically
used if upx corrupts certain binaries during compression. FILE is the
filename of the binary without path. This option can be used multiple
times.
.UNINDENT
.SS Windows And Macos Specific Options
.INDENT 0.0
.TP
.B \-c\fP,\fB \-\-console\fP,\fB \-\-nowindowed
Open a console window for standard i/o (default). On Windows this option
has no effect if the first script is a \(aq.pyw\(aq file.
.TP
.B \-w\fP,\fB \-\-windowed\fP,\fB \-\-noconsole
Windows and macOS: do not provide a console window for standard i/o. On
macOS this also triggers building a macOS .app bundle. On Windows this
option is automatically set if the first script is a \(aq.pyw\(aq file. This
option is ignored on *NIX systems.
.UNINDENT
.sp
\-\-hide\-console {hide\-early,hide\-late,minimize\-early,minimize\-late}
.INDENT 0.0
.INDENT 3.5
Windows only: in console\-enabled executable, have bootloader automatically
hide or minimize the console window if the program owns the console window
(i.e., was not launched from an existing console window).
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.BI \-i \ <FILE.ico or FILE.exe,ID or FILE.icns or Image or \(dqNONE\(dq>\fR,\fB \ \-\-icon \ <FILE.ico or FILE.exe,ID or FILE.icns or Image or \(dqNONE\(dq>
FILE.ico: apply the icon to a Windows executable. FILE.exe,ID: extract the
icon with ID from an exe. FILE.icns: apply the icon to the .app bundle on
macOS. If an image file is entered that isn\(aqt in the platform format (ico
on Windows, icns on Mac), PyInstaller tries to use Pillow to translate the
icon into the correct format (if Pillow is installed). Use \(dqNONE\(dq to not
apply any icon, thereby making the OS show some default (default: apply
PyInstaller\(aqs icon). This option can be used multiple times.
.TP
.B \-\-disable\-windowed\-traceback
Disable traceback dump of unhandled exception in windowed (noconsole) mode
(Windows and macOS only), and instead display a message that this feature
is disabled.
.UNINDENT
.SS Windows Specific Options
.INDENT 0.0
.TP
.BI \-\-version\-file \ FILE
Add a version resource from FILE to the exe.
.TP
.BI \-\-manifest \ <FILE or XML>
Add manifest FILE or XML to the exe.
.TP
.BI \-m \ <FILE or XML>
Deprecated shorthand for \-\-manifest.
.TP
.BI \-r \ RESOURCE\fR,\fB \ \-\-resource \ RESOURCE
Add or update a resource to a Windows executable. The RESOURCE is one to
four items, FILE[,TYPE[,NAME[,LANGUAGE]]]. FILE can be a data file or an
exe/dll. For data files, at least TYPE and NAME must be specified. LANGUAGE
defaults to 0 or may be specified as wildcard * to update all resources of
the given TYPE and NAME. For exe/dll files, all resources from FILE will be
added/updated to the final executable if TYPE, NAME and LANGUAGE are
omitted or specified as wildcard *. This option can be used multiple
times.
.TP
.B \-\-uac\-admin
Using this option creates a Manifest that will request elevation upon
application start.
.TP
.B \-\-uac\-uiaccess
Using this option allows an elevated application to work with Remote
Desktop.
.UNINDENT
.SS Macos Specific Options
.INDENT 0.0
.TP
.B \-\-argv\-emulation
Enable argv emulation for macOS app bundles. If enabled, the initial open
document/URL event is processed by the bootloader and the passed file paths
or URLs are appended to sys.argv.
.TP
.BI \-\-osx\-bundle\-identifier \ BUNDLE_IDENTIFIER
macOS .app bundle identifier is used as the default unique program name for
code signing purposes. The usual form is a hierarchical name in reverse DNS
notation. For example: com.mycompany.department.appname (default: first
script\(aqs basename)
.TP
.BI \-\-target\-architecture \ ARCH\fR,\fB \ \-\-target\-arch \ ARCH
Target architecture (macOS only; valid values: x86_64, arm64, universal2).
Enables switching between universal2 and single\-arch version of frozen
application (provided python installation supports the target
architecture). If not target architecture is not specified, the current
running architecture is targeted.
.TP
.BI \-\-codesign\-identity \ IDENTITY
Code signing identity (macOS only). Use the provided identity to sign
collected binaries and generated executable. If signing identity is not
provided, ad\-hoc signing is performed instead.
.TP
.BI \-\-osx\-entitlements\-file \ FILENAME
Entitlements file to use when code\-signing the collected binaries (macOS
only).
.UNINDENT
.SS Rarely Used Special Options
.INDENT 0.0
.TP
.BI \-\-runtime\-tmpdir \ PATH
Where to extract libraries and support files in \fIonefile\fP mode. If this
option is given, the bootloader will ignore any temp\-folder location
defined by the run\-time OS. The \fB_MEIxxxxxx\fP\-folder will be created here.
Please use this option only if you know what you are doing. Note that on
POSIX systems, PyInstaller\(aqs bootloader does NOT perform shell\-style
environment variable expansion on the given path string. Therefore, using
environment variables (e.g., \fB~\fP or \fB$HOME\fP) in path will NOT work.
.TP
.B \-\-bootloader\-ignore\-signals
Tell the bootloader to ignore signals rather than forwarding them to the
child process. Useful in situations where for example a supervisor process
signals both the bootloader and the child (e.g., via a process group) to
avoid signalling the child twice.
.UNINDENT
.SH ENVIRONMENT VARIABLES
.INDENT 0.0
.TP
.B PYINSTALLER_CONFIG_DIR
This changes the directory where PyInstaller caches some files.
The default location for this is operating system dependent,
but is typically a subdirectory of the home directory.
.UNINDENT
.SH SEE ALSO
.sp
\fBpyi\-makespec\fP(1),
The PyInstaller Manual \X'tty: link https://pyinstaller.readthedocs.io/'\fI\%https://pyinstaller.readthedocs.io/\fP\X'tty: link',
Project Homepage \X'tty: link http://www.pyinstaller.org'\fI\%http://www.pyinstaller.org\fP\X'tty: link'
.SH AUTHOR
Hartmut Goebel
.SH COPYRIGHT
This document has been placed in the public domain.
.\" Generated by docutils manpage writer.
.
|