笨方法学python 习题46项目骨架
pip是一个安装和管理python包的工具
virtualenv可以搭建虚拟且独立的python运行环境
Windows7配置
运行pip确认安装:
C:\Users\Administrator\Desktop>pip list
DEPRECATION: The default format will swi
pip (9.0.1)
setuptools (28.8.0)
virtualenv (16.6.1)
可以安全忽略弃用(deprecation)警告,接下来安装virtualenv来设置虚拟环境(我以安装完virtualenv)
C:\Users\Administrator\Desktop>pip install virtualenv
安装好了需要创建一个文件夹 .venvs,在里面装上虚拟环境
mkdir .venvs
virtualenv --system-site-packaes .venvs/lpthw #让 virtualenv包含系统站点包.lpthw是你的虚拟环境
安装好需要激活虚拟环境
C:\Users\Administrator\Desktop>.\.venvs\lpthw\Scripts\activate
(lpthw) C:\Users\Administrator\Desktop> #命令中有一个(lpthw)表示正在使用虚拟环境
安装 nose供运行测试使用
(lpthw) C:\Users\Administrator\Desktop>pip install nose #pip把他安装到了虚拟环境下面
创建骨架项目目录
mkdir projects #创建projects目录存储自己各个项目
cd projects/
mkdir skeleton #创建skeketon目录,这就是新项目的基础目录
cd skeleton
mkdir bin NAME tests docs #NAME目录是项目的主模块使用骨架时,可以将其重命名为项目主模块名称
接下来设置一些初始文件
PS C:\Users\zyu4x\projects\skeleton> new-item -type file NAME/__init__.py #在NAME目录下创建个__init__.py文件
Directory: C:\Users\zyu4x\projects\skeleton\NAME
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 6/21/2019 3:04 PM 0 __init__.py
PS C:\Users\zyu4x\projects\skeleton> new-item -type file tests/__init__.py
以上命令创建了空的python模块目录,然后我们需要建立一个setup.py文件(文件没有指定目录可以)这个文件安装项目的时候会用
serup.py --------------------------------------------------------------------------------------------------------
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
config = {
'description': 'My project',
'author': 'My Name',
'url': 'URL to get it at.',
'download_url': 'Where to download it.',
'author_email': 'My email.',
'version': '0.1',
'install_requires': ['nose'],
'packages': ['NAME'],
'scripts': [],
'name': 'projectname'
}
setup(**config)
编辑这个文件把自己练习方式写进去
最后需要一个测试专用的骨架文件叫tests/ NAME_tests.py (要在tests目录下创建)
NAME_tests.py
from nose.tools import *
import NAME
def setup():
print ("SETUP!")
def teardown():
print ("TEAR DOWN!")
def test_basic():
print ("I RAN!")
最终目录结构: 使用tree /f 查看树状目录结构
C:.
└───skeleton
│ setup.py
│
├───bin
├───docs
├───NAME
│ __init__.py
│
└───tests
NAME_tests.py
__init__.py