python-项目骨架(powershell)

1.安装virtualenv

cd ~
pip list                     #查看pip安装列表
pip install virtualenv

 

2.创建文件夹,在里面安装虚拟环境

mkdir .venvs
virtualenvs --system-site-package .venvs/lpthw

3.激活虚拟环境

PS C:\Users\xxxx> .\.venvs\lpthw\Scripts\activate
(lpthw) PS C:\Users\xxxx>

在powershell执行脚本时报错,原因是powershell默认执行策略为Restricted,不支持运行脚本,可以对策略进行更改

PS C:\Users\xxxx> .\.venvs\lpthw\Scripts\activate
.\.venvs\lpthw\Scripts\activate : 无法加载文件 C:\Users\crystaldu\.venvs\lpthw\Scripts\activate.ps1,因为在此系统上禁止
运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1
+ .\.venvs\lpthw\Scripts\activate
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [],PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

①查询当前策略

PS C:\Users\xxxxx> get-executionpolicy

②更改当前策略为remotesigned,关于更多执行策略可以参考:https://docs.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-6

PS C:\Users\xxxx> set-executionpolicy remotesigned

 4.创建骨架项目目录

mkdir -p projects/skeleton/bin          #创建一个多级目录,-p 用/隔开
cd  projects/skeleton/bin
mkdir -p bin,NAME,tests,docs           #创建多个同级目录,-p 用,隔开

5.设置初始文件

(lpthw) PS C:\Users\xxx\projects\skeleton> new-item -type file NAME/__init__.py
(lpthw) PS C:\Users\xxx\projects\skeleton> new-item -type file tests/__init__.py

6.安装文件 setup.py  【C:\Users\xxxx\projects\skeleton\】

try:
    from setuptools import setup

except ImportError:
    from distutils.core import setup
    
    
config = {
    'description': 'My Project',
    'author': 'xxxx',
    'url': 'https://www.cnblogs.com/ohlala/',
    'download_url': 'xxxxx',
    'author_email': 'xxxx@163.com',
    'version': '0.1',
    'install_requires': ['nose'],
    'packages':['NAME'],
    'scripts':[],
    'name': 'projectname'
    }
    
setup(**config)

创建NAME_tests.py 【C:\Users\xxxx\projects\skeleton\tests】

from nose.tools import *
import NAME

def setup():
    print("SETUP!")
    
def teardown():
    print("TEAR DOWN!")
    
def test_basic():
    print("I RAN!", end='')

7.复制项目骨架

(lpthw) PS C:\Users\xxx\projects> cp -r .\skeleton\ ex47
(lpthw) PS C:\Users\xxx\projects\ex47> ls


    目录: C:\Users\xxx\projects\ex47


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----         2019/9/4     10:54                bin
d-----         2019/9/4     10:54                docs
d-----         2019/9/4     10:54                NAME
d-----         2019/9/4     10:54                tests
-a----         2019/9/4     10:17            469 setup.py


(lpthw) PS C:\Users\xxx\projects\ex47> mv NAME ex47
(lpthw) PS C:\Users\xxx\projects\ex47> ls


    目录: C:\Users\xxx\projects\ex47


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----         2019/9/4     10:54                bin
d-----         2019/9/4     10:54                docs
d-----         2019/9/4     10:54                ex47
d-----         2019/9/4     10:54                tests
-a----         2019/9/4     10:17            469 setup.py

(lpthw) PS C:\Users\xxx\projects\ex47> mv .\tests\NAME_tests.py ex47_tests.py

然后修改ex47_tests.py中的代码

from nose.tools import *
import ex47

def setup():
    print("SETUP!")
    
def teardown():
    print("TEAR DOWN!")
    
def test_basic():
    print("I RAN!", end='')

 修改后执行nosetests进行测试

(lpthw) PS C:\Users\crystaldu\projects\ex47> nosetests
.
----------------------------------------------------------------------
Ran 1 test in 0.037s

OK
(lpthw) PS C:\Users\crystaldu\projects\ex47> nosetests -s
SETUP!
.I RAN!TEAR DOWN!

----------------------------------------------------------------------
Ran 1 test in 0.031s

OK

8.安装


(lpthw) PS C:\Users\xxx\projects\ex47> python .\setup.py install
running install
running bdist_egg
running egg_info
creating ex47.egg-info
writing ex47.egg-info\PKG-INFO
writing dependency_links to ex47.egg-info\dependency_links.txt
writing requirements to ex47.egg-info\requires.txt
writing top-level names to ex47.egg-info\top_level.txt
writing manifest file 'ex47.egg-info\SOURCES.txt'
reading manifest file 'ex47.egg-info\SOURCES.txt'
writing manifest file 'ex47.egg-info\SOURCES.txt'
installing library code to build\bdist.win-amd64\egg
running install_lib
running build_py
creating build
creating build\lib
creating build\lib\ex47
copying ex47\__init__.py -> build\lib\ex47
creating build\bdist.win-amd64
creating build\bdist.win-amd64\egg
creating build\bdist.win-amd64\egg\ex47
copying build\lib\ex47\__init__.py -> build\bdist.win-amd64\egg\ex47
byte-compiling build\bdist.win-amd64\egg\ex47\__init__.py to __init__.cpython-37.pyc
creating build\bdist.win-amd64\egg\EGG-INFO
copying ex47.egg-info\PKG-INFO -> build\bdist.win-amd64\egg\EGG-INFO
copying ex47.egg-info\SOURCES.txt -> build\bdist.win-amd64\egg\EGG-INFO
copying ex47.egg-info\dependency_links.txt -> build\bdist.win-amd64\egg\EGG-INFO
copying ex47.egg-info\requires.txt -> build\bdist.win-amd64\egg\EGG-INFO
copying ex47.egg-info\top_level.txt -> build\bdist.win-amd64\egg\EGG-INFO
zip_safe flag not set; analyzing archive contents...
creating dist
creating 'dist\ex47-1.0-py3.7.egg' and adding 'build\bdist.win-amd64\egg' to it
removing 'build\bdist.win-amd64\egg' (and everything under it)
Processing ex47-1.0-py3.7.egg
Copying ex47-1.0-py3.7.egg to c:\users\xxx\.venvs\lpthw\lib\site-packages
Adding ex47 1.0 to easy-install.pth file

Installed c:\users\xxx\.venvs\lpthw\lib\site-packages\ex47-1.0-py3.7.egg
Processing dependencies for ex47==1.0
Searching for nose==1.3.7
Best match: nose 1.3.7
Adding nose 1.3.7 to easy-install.pth file
Installing nosetests-script.py script to C:\Users\xxx\.venvs\lpthw\Scripts
Installing nosetests.exe script to C:\Users\xxx\.venvs\lpthw\Scripts
Installing nosetests-3.4-script.py script to C:\Users\xxx\.venvs\lpthw\Scripts
Installing nosetests-3.4.exe script to C:\Users\xxx\.venvs\lpthw\Scripts

Using c:\users\xxx\.venvs\lpthw\lib\site-packages
Finished processing dependencies for ex47==1.0
(lpthw) PS C:\Users\xxx\projects\ex47>

9.卸载

(lpthw) PS C:\Users\xxx\projects\ex47> pip uninstall ex47
Uninstalling ex47-1.0:
  Would remove:
    c:\users\xxx\.venvs\lpthw\lib\site-packages\ex47-1.0-py3.7.egg
Proceed (y/n)? y
  Successfully uninstalled ex47-1.0
(lpthw) PS C:\Users\xxx\projects\ex47>

 

posted on 2019-09-04 09:55  Oohlala  阅读(812)  评论(0编辑  收藏  举报

导航