觉醒时刻
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
2.6 KiB

1 week ago
# pyexe.exe
https://github.com/manthey/pyexe
[![Build status](https://ci.appveyor.com/api/projects/status/n18f0997k18x87lw/branch/master?svg=true)](https://ci.appveyor.com/project/manthey/pyexe/branch/master)
Here is a stand-alone version of python that is a single Windows executable.
It consists of the most recent versions of Python (with builds for 2.7, 3.5,
and 3.6 each in 32-bit and 64-bit versions), pywin32, psutil, six, pip,
setuptools, and includes all packages that can be included without additional
dlls, excepting tkinter.
See the appveyor script for build instructions.
## Installing other modules
Python is most useful with additional modules. The stand-alone executable can use pip to install modules from pypi to the local directory. For instance:
```bash
py36-64.exe -m pip install --no-cache-dir --target . --upgrade sympy
```
Use `-m pip` to run the pip module. Use `--no-cache-dir` to avoid writing files to the user's data directory. Use `--target .` to install to the current directory, allowing you to import the modules easily. Use `--upgrade` to replace existing files, such as the common `bin` directory. Note that using `--upgrade` will overwrite or discard existing files, which may not be what you want (the `bin` directory will end up with just files for the most recently installed package).
## Differences from installed Python
Although the stand-alone Python attempts to have the same features as a normally installed Python, there are some differences.
- If command line options are specified, there may be some differences in `sys.flags`, since it is read-only and cannot be altered after start.
- `PYTHONHOME` is ignored. This option doesn't make sense for a stand-alone version.
- `-V` and `PYTHONVERBOSE` don't print exactly the same information as installed Python, partly because the verbosity is increased after some modules are already imported.
- `--check-hash-based-pycs` is ignored. This option cannot be changed after the Python executable starts.
- `-R` and `PYTHONHASHSEED` are ignored. These options cannot be changed after the Python executable starts.
- `PYTHONCASEOK` is not honored on Python 2.7. It behaves as installed Python for Python 3.x, i.e., `-E` does not ignore it, but `-I` does, see [Python issue 16826](https://bugs.python.org/issue16826) for some discussion.
- Not all environment variables are handled, such as: `PYTHONIOENCODING`, `PYTHONFAULTHANDLER`, `PYTHONLEGACYWINDOWSFSENCODING`, `PYTHONLEGACYWINDOWSSTDIO`, `PYTHONMALLOC`, `PYTHONCOERCECLOCALE`, `PYTHONDEVMODE`. Some of these are ignored; some are used and cannot be suppressed with `-E` or `-I`. Many of these could be handled properly with additional work.