笨办法学Python3 习题46项目骨架

本文详细介绍了如何在Windows10系统中配置Python环境,包括确认Python版本,使用pip进行基本安装,安装并设置virtualenv虚拟环境,以及创建和激活虚拟环境的过程。同时,还展示了如何使用virtualenv来隔离不同项目的依赖,以及如何安装额外的测试工具nose。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于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文件,这个文件在安装目录的时候会用到。

 

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值