基于Windows10进行环境配置:
确认python版本:
PS C:\Users\shub> cd ~
PS C:\Users\shub> python
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()
运行pip,确认有基本的安装:
PS C:\Users\shub> pip list
Package Version
----------------- -------
astroid 2.0.4
colorama 0.4.0
isort 4.3.4
lazy-object-proxy 1.3.1
mccabe 0.6.1
pip 10.0.1
pylint 2.1.1
setuptools 39.0.1
six 1.11.0
wrapt 1.10.11
You are using pip version 10.0.1, however version 18.1 is available.
安装virtuallenv来设置简单的虚拟环境
过程:
PS C:\Users\shub> pip install virtualenv
Collecting virtualenv
Downloading https://files.pythonhosted.org/packages/7c/17/9b7b6cddfd255388b58c61e25b091047f6814183e1d63741c8df8dcd65a2/virtualenv-16.1.0-py2.py3-none-any.whl (1.9MB)
17% |█████▌ | 327kB 9.4kB/s eta 0:02:51
结果:
PS C:\Users\shub> pip install virtualenv
Collecting virtualenv
Downloading https://files.pythonhosted.org/packages/7c/17/9b7b6cddfd255388b58c61e25b091047f6814183e1d63741c8df8dcd65a2/virtualenv-16.1.0-py2.py3-none-any.whl (1.9MB)
100% |████████████████████████████████| 1.9MB 1.1kB/s
Installing collected packages: virtualenv
The script virtualenv.exe is installed in 'e:\python\Scripts' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed virtualenv-16.1.0
You are using pip version 10.0.1, however version 18.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
安装好virtualenv你就需要创建一个.venvs文件夹,在里面装上你的虚拟环境:
PS C:\Users\shub> mkdir .venvs
目录: C:\Users\shub
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2018/11/29 16:26 .venvs
PS C:\Users\shub> virtualenv --system-site-packages .venvs/lpthw
Using base prefix 'e:\\python'
New python executable in C:\Users\shub\.venvs\lpthw\Scripts\python.exe
Installing setuptools, pip, wheel...
done.
这两条命令创建了一个.venvs文件夹,用来存储不同的虚拟环境,然后为你创建了第一个虚拟环境,叫lpthw虚拟环境就是一个用过来安装软件的“假的”的方,这样你就可以针对不同项目使用不同的版本的软件包了。
激活虚拟环境:
(发现无法激活虚拟环境)
PS C:\Users\shub\.venvs\lpthw\Scripts> get-ExecutionPolicy
Restricted
关闭powershell、以管理员身份运行
PS C:\Windows\system32> get-ExecutionPolicy
Restricted
PS C:\Windows\system32> set-ExecutionPolicy RemoteSigned
执行策略更改
执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如 https:/go.microsoft.com/fwlink/?LinkID=135170
中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略?
[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?] 帮助 (默认值为“N”): y
更改被限制的执行策略,并进行激活虚拟环境
PS C:\Users\shub> .\.venvs\lpthw\Scripts\activate
(lpthw) PS C:\Users\shub>
这样就为PowerShell运行activate脚本,它把你当前的shell设为使用lpthw虚拟环境。每次使用书中的软件,你都要先执行这条命令。你会注意到接下来的命令中就会有一个(lpthw),它表示你正在使用的虚拟环境。最后,你需要安装nose,以供后面运行测试使用:
(lpthw) PS C:\Users\shub> pip install nose
Collecting nose
Downloading https://files.pythonhosted.org/packages/15/d8/dd071918c040f50fa1cf80da16423af51ff8ce4a0f2399b7bf8de45ac3d9/nose-1.3.7-py3-none-any.whl (154kB)
100% |████████████████████████████████| 163kB 9.0kB/s
Installing collected packages: nose
Successfully installed nose-1.3.7
这样nose就安装好了,只不过pip把它安装到了.venvs/lpthw虚拟环境下面,而非主系统软件包目录。
创建骨架项目目录
使用下述命令创建骨架目录的结构
PS C:\Users\shub> cd lpthw
PS C:\Users\shub\lpthw> python
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> mkdir projects
File "<stdin>", line 1
mkdir projects
^
SyntaxError: invalid syntax
>>> quit()
PS C:\Users\shub\lpthw> mkdir projects
目录: C:\Users\shub\lpthw
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2018/12/17 21:58 projects
PS C:\Users\shub\lpthw> cd projects/
PS C:\Users\shub\lpthw\projects> mkdir skeleton
目录: C:\Users\shub\lpthw\projects
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2018/12/17 21:59 skeleton
PS C:\Users\shub\lpthw\projects> cd skeleton
PS C:\Users\shub\lpthw\projects\skeleton> mkdir bin NAME tests docs
mkdir : 找不到接受实际参数“NAME”的位置形式参数。
所在位置 行:1 字符: 1
+ mkdir bin NAME tests docs
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [mkdir],ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,mkdir
PS C:\Users\shub\lpthw\projects\skeleton> mkdir bin shub tests docs
mkdir : 找不到接受实际参数“shub”的位置形式参数。
所在位置 行:1 字符: 1
+ mkdir bin shub tests docs
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [mkdir],ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,mkdir
PS C:\Users\shub\lpthw\projects\skeleton> mkdir bin shub tests docs
mkdir : 找不到接受实际参数“shub”的位置形式参数。
所在位置 行:1 字符: 2
+ mkdir bin shub tests docs
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [mkdir],ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,mkdir
PS C:\Users\shub\lpthw\projects\skeleton> mkdir bin shub tests docs
mkdir : 找不到接受实际参数“shub”的位置形式参数。
所在位置 行:1 字符: 1
+ mkdir bin shub tests docs
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [mkdir],ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,mkdir
PS C:\Users\shub\lpthw\projects\skeleton>
PS C:\Users\shub\lpthw\projects\skeleton> mkdir bin shub tests docs
mkdir : 找不到接受实际参数“shub”的位置形式参数。
所在位置 行:1 字符: 2
+ mkdir bin shub tests docs
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [mkdir],ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,mkdir
PS C:\Users\shub\lpthw\projects\skeleton> mkdir bin
目录: C:\Users\shub\lpthw\projects\skeleton
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2018/12/17 22:21 bin
PS C:\Users\shub\lpthw\projects\skeleton> cd bin
PS C:\Users\shub\lpthw\projects\skeleton\bin> mkdir shub
目录: C:\Users\shub\lpthw\projects\skeleton\bin
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2018/12/17 22:21 shub
PS C:\Users\shub\lpthw\projects\skeleton\bin> cd shub
PS C:\Users\shub\lpthw\projects\skeleton\bin\shub> mkdir docs
目录: C:\Users\shub\lpthw\projects\skeleton\bin\shub
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2018/12/17 22:21 docs
PS C:\Users\shub\lpthw\projects\skeleton\bin\shub> cd docs
原来mkdir bin NAME tests docs是分别创建bin、NAME、tests、docs四个文件。
接下来要设置一些初始文件
PS C:\Users\shub\lpthw\projects\skeleton> new-item -type file tests/__init__.py
目录: C:\Users\shub\lpthw\projects\skeleton\tests
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2018/12/18 9:18 0 __init__.py
PS C:\Users\shub\lpthw\projects\skeleton> new-item -type file shubo/__init__.py
目录: C:\Users\shub\lpthw\projects\skeleton\shubo
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2018/12/18 9:18 0 __init__.py
以上创建了空的Python模块目录,我们可以将代码放入其中。然后建立一个setup.py文件,这个文件在安装目录的时候会用到。