powershell新建python文件_python-项目骨架(powershell)

本文介绍了如何在Python中使用virtualenv创建和管理虚拟环境,以及如何搭建项目骨架,包括创建多级目录、初始化文件、编写setup.py脚本、执行测试和安装、卸载项目。同时,针对powershell执行权限问题给出了解决方案。
摘要由CSDN通过智能技术生成

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

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 importsetupexceptImportError:from distutils.core importsetup

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 *

importNAMEdefsetup():print("SETUP!")defteardown():print("TEAR DOWN!")deftest_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:54bin

d----- 2019/9/4 10:54docs

d----- 2019/9/4 10:54NAME

d----- 2019/9/4 10:54tests-a---- 2019/9/4 10:17 469setup.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:54bin

d----- 2019/9/4 10:54docs

d----- 2019/9/4 10:54ex47

d----- 2019/9/4 10:54tests-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 *

importex47defsetup():print("SETUP!")defteardown():print("TEAR DOWN!")deftest_basic():print("I RAN!", end='')

修改后执行nosetests进行测试

(lpthw) PS C:\Users\crystaldu\projects\ex47>nosetests

.----------------------------------------------------------------------Ran1 test in0.037s

OK

(lpthw) PS C:\Users\crystaldu\projects\ex47> nosetests -s

SETUP!

.I RAN!TEAR DOWN!----------------------------------------------------------------------Ran1 test in0.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 flagnotset; 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' (andeverything 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 ex471.0 to easy-install.pth file

Installed c:\users\xxx\.venvs\lpthw\lib\site-packages\ex47-1.0-py3.7.egg

Processing dependenciesfor ex47==1.0Searchingfor nose==1.3.7Best match: nose1.3.7Adding nose1.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 dependenciesfor 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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值