Python3 For Windows 10

installer

安装

Win10 安装 Python3 (上)-LMLPHP

Win10 安装 Python3 (上)-LMLPHP

Win10 安装 Python3 (上)-LMLPHP

Win10 安装 Python3 (上)-LMLPHP

Win10 安装 Python3 (上)-LMLPHP

Win10 安装 Python3 (上)-LMLPHP

Win10 安装 Python3 (上)-LMLPHP

随后可以看到,installer 在用户环境变量PATH中,添加了三项:
Win10 安装 Python3 (上)-LMLPHP

卸载

使用 installer 卸载 python 时,并不会移除 launcher。若要移除 launcher,需要打开“程序和功能”,在列表中选择删除。同时,python 也可以通过这里删除或修改。

简单配置

UTF-8 mode

两种方式:

  • 设置环境变量 PYTHONUTF8 为 1;
  • 在命令行中传递参数 -X utf8

即使该模式未开启,在下面两种情况下,仍将使用 UTF-8:

  • Console I/O including standard I/O
  • The filesystem encoding

Python Launcher

一个用于选择和执行不同版本 Python 的实用程序。

虚拟环境

如果没有显式给出 Python 版本,且激活了虚拟环境(由标准库 venv 模块或外部的 virtualenv 工具创建),那么 launcher 将使用虚拟环境中的解释器,而非全局的。

文件关联

.py, .pyw, .pyc

只有安装了 launcher,才会产生这些关联。这意味着,我们可以双击执行一个脚本文件,而不用打开命令行。

Shebang Lines

这个东西在 Nix 系统上是原生支持的,而在 Windows 上,由 launcher 来提供这一支持。

虽然很奇怪,但

#!/usr/bin/python

将启用默认的 Python 版本,当然,也可以显式地添加版本后缀,以启用其它版本。

使用 /usr/bin/env 形式的 shebang 将会在 PATH 中搜索 Python 可执行文件,其行为,就如同 Nix 中的 env 程序一样。

此外,也可以在 shebang 中向解释器传递一些选项。

Customization

INI

  • %appdata%(当前用户的应用数据目录)中的 py.ini;(高优先级)
  • launcher 所在目录下的 py.ini

Finding modules

Python 通常将它的库放在安装目录下,默认的库位于 {root}\Lib\,第三方库位于 {root}\Lib\site-packages\

._pth.pth 文件

pyvenv.cfg 文件

Pip

config

子命令:

  • list
  • edit
    • 需要使用 --editor <editor> 指定所用编辑器,否则使用变量 VISUAL 或 EDITOR 指定。
    • 很奇怪的是,传入 VScode 的路径,总是报错,而使用 notepad 却没有问题。
  • get
  • set
  • unset
  • debug

作用域选项:

file

位置
Per-user
  • Default is %appdata%\pip\pip.ini
  • 由于历史原因,%home%\pip\pip.ini也会被考虑;
  • 当然,也可以自定一个位置,设置环境变量 PIP_CONFIG_FILE 即可。
Inside a virtualenv

%virtual_env%\pip.ini

Global

C:\ProgramData\pip\pip.ini

哪一个

如果发现有多个配置文件,那么按以下顺序进行读取,且后者覆盖前者:

  • global
  • per-user
  • virtualenv-specific
怎么写

The names of the settings are derived from the long command line option, e.g. if you want to use a different package index (--index-url) and set the HTTP timeout (--default-timeout) to 60 seconds your config file would look like this:

[global]
timeout = 60
index-url = https://download.zope.org/ppix

Each subcommand can be configured optionally in its own section so that every global setting with the same name will be overridden; e.g. decreasing the timeout to 10 seconds when running the freeze (pip freeze) command and using 60 seconds for all other commands is possible with:

[global]
timeout = 60

[freeze]
timeout = 10

Boolean options like --ignore-installed or --no-dependencies can be set like this:

[install]
ignore-installed = true
no-dependencies = yes

To enable the boolean options --no-compile, --no-warn-script-location and --no-cache-dir, falsy values have to be used:

[global]
no-cache-dir = false

[install]
no-compile = no
no-warn-script-location = false

For options which can be repeated like --verbose and --quiet, a non-negative integer can be used to represent the level to be specified:

[global]
quiet = 0
verbose = 2

It is possible to append values to a section within a configuration file such as the pip.ini file. This is applicable to appending options like --find-links or --trusted-host, which can be written on multiple lines:

[global]
find-links =
    http://download.example.com

[install]
find-links =
    http://mirror1.example.com
    http://mirror2.example.com

trusted-host =
    mirror1.example.com
    mirror2.example.com

This enables users to add additional values in the order of entry for such command line arguments.

环境变量

pip’s command line options can be set with environment variables using the format PIP_<UPPER_LONG_NAME> . Dashes (-) have to be replaced with underscores (_).

优先级

命令行参数>环境变量>配置文件

aboutMe

配置了一下镜像源:

> pip config --global set global.index-url https://mirrors.bfsu.edu.cn/pypi/web/simple

这将创建全局配置文件,并写入。

随后我直接在该文件中添加了一些配置项:

[global]
index-url = https://mirrors.bfsu.edu.cn/pypi/web/simple
cache-dir = D:\xxxxx\Documents\Python\pip\cache

注意,虽然看起来 cache-dir 像是和 cache 命令相关的,但实际上它是一个通用选项(General Options),而非 Cache Options,所以,如果将其放在 [cache] 下,将不会产生任何效果。

virtualenv

Creators

venv

可将创建行为委托给 Python 标准库中的 venv 模块。virtualenv 将创建一个进程来调用该模块,这在 Windows 上将是一笔不小的开销。

builtin

virtualenv 本身便可以执行创建操作。

Seeders

种包指的是 pipsetuptoolswheel 三者中的一或多个。安装种包,将使得你可以在创建的虚拟环境中安装其它的包。对于种包的安装,有两种机制:

pip

使用与 virtualenv 绑定的 pip 安装种包,这将创建一个进程来执行之。

add-data

在用户应用数据目录下创建一个安装镜像,随后要用到时,只需要简单的链接或拷贝这些镜像即可。对 Windows 来说,可能没有使能 symlink,但即便是拷贝,也快得多了。

可以使用环境变量 VIRTUALENV_OVERRIDE_APP_DATA 指定 the seed cache 的位置。

Activators

在虚拟环境目录下,Scripts文件夹中,有一些激活脚本。它们被用来修改 shell 的设置,以确保虚拟环境中的命令要优先于全局路径下的。

CLI interface

virtualenv 主要是一个命令行应用。默认的命令行标志可以被配置文件覆盖,而环境变量又优先于配置。使用 --help 时,可以在帮助信息的最后看到该标志的值,以及是否默认。

Configuration file

位置

pip 一样,virtualenv 也使用标准的 ini 格式的配置文件,默认为 %localappdata%\pypa\virtualenv\virtualenv.ini

--help 输出的最后,可以看到配置文件的位置。可使用 VIRTUALENV_CONFIG_FILE 自定义其位置。

怎么写

基于命令行选项,将左边的 - 符号移除,使用 _ 替换 - 即可配置之。

aboutMe
[virtualenv]

app_data = D:\xxxxx\Documents\Python\pypa\virtualenv

no_vcs_ignore = true

system_site_packages = true

no_periodic_update = true

activators = batch

Misc

  • venv — Creation of virtual environments

The created pyvenv.cfg file also includes the include-system-site-packages key, set to true if venv is run with the --system-site-packages option, false otherwise.

When a virtual environment is active, the VIRTUAL_ENV environment variable is set to the path of the virtual environment. This can be used to check if one is running inside a virtual environment.

... However, all scripts installed in a virtual environment should be runnable without activating it, and run with the virtual environment’s Python automatically.


06-03 12:10