pythonenv
❶ 给系统盘留多少空间好python安装在哪个盘好
给系统盘留50G-80G,python安装在除C盘以外的任意盘都行。
系统盘50G即可,如果是固态可以不分区不过为了管理方便超过250G的建议分区安装在哪里都可以。现在python开发常用env环境,所需库在哪里都无所谓。若采用全局依赖安装则需要找一个容量大的盘符。
相关资料
系统保留分区指的是Windows系统在第一次管理硬盘的时候,保留用于存放系统引导文件的分区。Windows Vista/7出于安全考虑,在新装Windows 7(及以后的版本)过程中,如果利用光盘的分区工具给硬盘分区时,系统默认的将一部分(100-200M)的空间划分出来。
不分配盘符(你在系统下看到的诸如C、D、E之类的字母),用于存放系统引导文件(电脑启动时需要首先读取的一部分具有特殊功能的文件)。
❷ 如何删除python的虚拟环境
virtualenv 是一个创建隔绝的Python环境的工具。virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包。
安装
pip install virtualenv
基本使用
为一个工程创建一个虚拟环境:
$ cd my_project_dir
$ virtualenv venv#venv为虚拟环境目录名,目录名自定义
virtualenv venv 将会在当前的目录中创建一个文件夹,包含了Python可执行文件,以及 pip 库的一份拷贝,这样就能安装其他包了。虚拟环境的名字(此例中是 venv )可以是任意的;若省略名字将会把文件均放在当前目录。
在任何你运行命令的目录中,这会创建Python的拷贝,并将之放在叫做 venv 的文件中。
你可以选择使用一个Python解释器:
$ virtualenv -p /usr/bin/python2.7 venv# -p参数指定Python解释器程序路径
这将会使用 /usr/bin/python2.7 中的Python解释器。
要开始使用虚拟环境,其需要被激活:
$ source venv/bin/activate
从现在起,任何你使用pip安装的包将会放在 venv 文件夹中,与全局安装的Python隔绝开。
像平常一样安装包,比如:
$ pip install requests
如果你在虚拟环境中暂时完成了工作,则可以停用它:
$ . venv/bin/deactivate
这将会回到系统默认的Python解释器,包括已安装的库也会回到默认的。
要删除一个虚拟环境,只需删除它的文件夹。(执行 rm -rf venv )。
这里virtualenv 有些不便,因为virtual的启动、停止脚本都在特定文件夹,可能一段时间后,你可能会有很多个虚拟环境散落在系统各处,你可能忘记它们的名字或者位置。
virtualenvwrapper
鉴于virtualenv不便于对虚拟环境集中管理,所以推荐直接使用virtualenvwrapper。 virtualenvwrapper提供了一系列命令使得和虚拟环境工作变得便利。它把你所有的虚拟环境都放在一个地方。
安装virtualenvwrapper(确保virtualenv已安装)
pip install virtualenvwrapper
pip install virtualenvwrapper-win#Windows使用该命令
安装完成后,在~/.bashrc写入以下内容
export WORKON_HOME=~/Envs
source /usr/local/bin/virtualenvwrapper.sh
第一行:virtualenvwrapper存放虚拟环境目录
第二行:virtrualenvwrapper会安装到python的bin目录下,所以该路径是python安装目录下bin/virtualenvwrapper.sh
source ~/.bashrc#读入配置文件,立即生效
virtualenvwrapper基本使用
1.创建虚拟环境mkvirtualenv
mkvirtualenv venv
这样会在WORKON_HOME变量指定的目录下新建名为venv的虚拟环境。
若想指定python版本,可通过"--python"指定python解释器
mkvirtualenv --python=/usr/local/python3.5.3/bin/python venv
2. 基本命令
查看当前的虚拟环境目录
[root@localhost ~]# workon
py2
py3
切换到虚拟环境
[root@localhost ~]# workon py3
(py3) [root@localhost ~]#
退出虚拟环境
(py3) [root@localhost ~]# deactivate
[root@localhost ~]#
删除虚拟环境
rmvirtualenv venv
❸ python中怎么用控制台使用方法
本文实例讲述了Python显示进度条的方法,是Python程序设计中非常实用的技巧。分享给大家供大家参考。具体方法如下:
首先,进度条和一般的print区别在哪里呢?
答案就是print会输出一个\n,也就是换行符,这样光标移动到了下一行行首,接着输出,之前已经通过stdout输出的东西依旧保留,而且保证我们在下面看到最新的输出结果。
进度条不然,我们必须再原地输出才能保证他是一个进度条,否则换行了怎么还叫进度条?
最简单的办法就是,再输出完毕后,把光标移动到行首,继续在那里输出更长的进度条即可实现,新的更长的进度条把旧的短覆盖,就形成了动画效果。
可以想到那个转义符了吧,那就是\ r。
转义符r就可以把光标移动到行首而不换行,转义符n就把光标移动到行首并且换行。
在python中,输出stdout(标准输出)可以使用sys.stdout.write
例如:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/env python
# -*- coding=utf-8 -*-
#Using GPL v2
#Author: [email protected]
##2010-10-27 22:07
"""
Usage:
Just A Template
"""
from __future__ import division
import sys,time
j = '#'
if __name__ == '__main__':
for i in range(1,61):
j += '#'
sys.stdout.write(str(int((i/60)*100))+'% ||'+j+'->'+"\r")
sys.stdout.flush()
time.sleep(0.5)
print
第二种思路是用转义符\b
转义符\b是退格键,也就是说把输出的光标往回退格子,这样就可以不用+=了,例如:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/env python
# -*- coding=utf-8 -*-
#Using GPL v2
#Author: [email protected]
#2010-10-27 22:07
"""
Usage:
Just A Template
"""
from __future__ import division
import sys,time
if __name__ == '__main__':
for i in range(1,61):
sys.stdout.write('#'+'->'+"\b\b")
sys.stdout.flush()
time.sleep(0.5)
print
光标回退2格,写个#再回退,再写,达到增长的目的了
不过写这么多似乎是废话,在耳边常常听到一句话:那就是不要重复造轮子。实际上python有丰富发lib帮你实现这个东西,你完全可以把心思放在逻辑开发上而不用注意这些小细节
下面要介绍的就是这个类“progressbar”,使用easy_install可以方便的安装这个类库,其实就一个文件,拿过来放到文件同一个目录下面也直接可以import过来
如下图所示:
下面就是基本使用举例:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/env python
# -*- coding=utf-8 -*-
#Using GPL v2
#Author: [email protected]
#2010-10-27 22:53
"""
Usage:
Just A Template
"""
from __future__ import division
import sys,time
from progressbar import *
total = 1000
#基本用法
progress = ProgressBar()
for i in progress(range(total)):
time.sleep(0.01)
pbar = ProgressBar().start()
for i in range(1,1000):
pbar.update(int((i/(total-1))*100))
time.sleep(0.01)
pbar.finish()
#高级用法
widgets = ['Progress: ', Percentage(), ' ', Bar(marker=RotatingMarker('>-=')),
' ', ETA(), ' ', FileTransferSpeed()]
pbar = ProgressBar(widgets=widgets, maxval=10000000).start()
for i in range(1000000):
# do something
pbar.update(10*i+1)
time.sleep(0.0001)
pbar.finish()
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
# coding:utf-8
import sys
import time
from progressbar import AnimatedMarker, Bar, BouncingBar, Counter, ETA, \
FileTransferSpeed, FormatLabel, Percentage, \
ProgressBar, ReverseBar, RotatingMarker, \
SimpleProgress, Timer
examples = []
def example(fn):
try:
name = 'Example %d' % int(fn.__name__[7:])
except:
name = fn.__name__
def wrapped():
try:
sys.stdout.write('Running: %s\n' % name)
fn()
sys.stdout.write('\n')
except KeyboardInterrupt:
sys.stdout.write('\nSkipping example.\n\n')
examples.append(wrapped)
return wrapped
@example
def example0():
pbar = ProgressBar(widgets=[Percentage(), Bar()], maxval=300).start()
for i in range(300):
time.sleep(0.01)
pbar.update(i + 1)
pbar.finish()
@example
def example1():
widgets = ['Test: ', Percentage(), ' ', Bar(marker=RotatingMarker()),
' ', ETA(), ' ', FileTransferSpeed()]
pbar = ProgressBar(widgets=widgets, maxval=10000000).start()
for i in range(1000000):
# do something
pbar.update(10 * i + 1)
pbar.finish()
@example
def example2():
class CrazyFileTransferSpeed(FileTransferSpeed):
"""It's bigger between 45 and 80 percent."""
def update(self, pbar):
if 45 < pbar.percentage() < 80:
return 'Bigger Now ' + FileTransferSpeed.update(self, pbar)
else:
return FileTransferSpeed.update(self, pbar)
widgets = [CrazyFileTransferSpeed(), ' <<<', Bar(), '>>> ',
Percentage(), ' ', ETA()]
pbar = ProgressBar(widgets=widgets, maxval=10000000)
# maybe do something
pbar.start()
for i in range(2000000):
# do something
pbar.update(5 * i + 1)
pbar.finish()
@example
def example3():
widgets = [Bar('>'), ' ', ETA(), ' ', ReverseBar('<')]
pbar = ProgressBar(widgets=widgets, maxval=10000000).start()
for i in range(1000000):
# do something
pbar.update(10 * i + 1)
pbar.finish()
@example
def example4():
widgets = ['Test: ', Percentage(), ' ',
Bar(marker='0', left='[', right=']'),
' ', ETA(), ' ', FileTransferSpeed()]
pbar = ProgressBar(widgets=widgets, maxval=500)
pbar.start()
for i in range(100, 500 + 1, 50):
time.sleep(0.2)
pbar.update(i)
pbar.finish()
@example
def example5():
pbar = ProgressBar(widgets=[SimpleProgress()], maxval=17).start()
for i in range(17):
time.sleep(0.2)
pbar.update(i + 1)
pbar.finish()
@example
def example6():
pbar = ProgressBar().start()
for i in range(100):
time.sleep(0.01)
pbar.update(i + 1)
pbar.finish()
@example
def example7():
pbar = ProgressBar() # Progressbar can guess maxval automatically.
for i in pbar(range(80)):
time.sleep(0.01)
@example
def example8():
pbar = ProgressBar(maxval=80) # Progressbar can't guess maxval.
for i in pbar((i for i in range(80))):
time.sleep(0.01)
@example
def example9():
pbar = ProgressBar(widgets=['Working: ', AnimatedMarker()])
for i in pbar((i for i in range(50))):
time.sleep(.08)
@example
def example10():
widgets = ['Processed: ', Counter(), ' lines (', Timer(), ')']
pbar = ProgressBar(widgets=widgets)
for i in pbar((i for i in range(150))):
time.sleep(0.1)
@example
def example11():
widgets = [FormatLabel('Processed: %(value)d lines (in: %(elapsed)s)')]
pbar = ProgressBar(widgets=widgets)
for i in pbar((i for i in range(150))):
time.sleep(0.1)
@example
def example12():
widgets = ['Balloon: ', AnimatedMarker(markers='.oO<a href="">@*</a> ')]
pbar = ProgressBar(widgets=widgets)
for i in pbar((i for i in range(24))):
time.sleep(0.3)
@example
def example13():
# You may need python 3.x to see this correctly
try:
widgets = ['Arrows: ', AnimatedMarker(markers='←↖↑↗→↘↓↙')]
pbar = ProgressBar(widgets=widgets)
for i in pbar((i for i in range(24))):
time.sleep(0.3)
except UnicodeError:
sys.stdout.write('Unicode error: skipping example')
@example
def example14():
# You may need python 3.x to see this correctly
try:
widgets = ['Arrows: ', AnimatedMarker(markers='◢◣◤◥')]
pbar = ProgressBar(widgets=widgets)
for i in pbar((i for i in range(24))):
time.sleep(0.3)
except UnicodeError:
sys.stdout.write('Unicode error: skipping example')
@example
def example15():
# You may need python 3.x to see this correctly
try:
widgets = ['Wheels: ', AnimatedMarker(markers='◐◓◑◒')]
pbar = ProgressBar(widgets=widgets)
for i in pbar((i for i in range(24))):
time.sleep(0.3)
except UnicodeError:
sys.stdout.write('Unicode error: skipping example')
@example
def example16():
widgets = [FormatLabel('Bouncer: value %(value)d - '), BouncingBar()]
pbar = ProgressBar(widgets=widgets)
for i in pbar((i for i in range(180))):
time.sleep(0.05)
@example
def example17():
widgets = [FormatLabel('Animated Bouncer: value %(value)d - '),
BouncingBar(marker=RotatingMarker())]
pbar = ProgressBar(widgets=widgets)
for i in pbar((i for i in range(180))):
time.sleep(0.05)
@example
def example18():
widgets = [Percentage(),
' ', Bar(),
' ', ETA(),
' ', AdaptiveETA()]
pbar = ProgressBar(widgets=widgets, maxval=500)
pbar.start()
for i in range(500):
time.sleep(0.01 + (i < 100) * 0.01 + (i > 400) * 0.9)
pbar.update(i + 1)
pbar.finish()
@example
def example19():
pbar = ProgressBar()
for i in pbar([]):
pass
pbar.finish()
try:
for example in examples:
example()
except KeyboardInterrupt:
sys.stdout('\nQuitting examples.\n')
❹ python装饰器是什么意思
装饰器是程序开发中经常会用到的一个功能,用好了装饰器,开发效率如虎添翼,所以这也是Python面试中必问的问题,但对于好多小白来讲,这个功能 有点绕,自学时直接绕过去了,然后面试问到了就挂了,因为装饰器是程序开发的基础知识,这个都 不会,别跟人家说你会Python, 看了下面的文章,保证你学会装饰器。
1、先明白这段代码
####第一波####
deffoo():
print'foo'
foo#表示是函数
foo()#表示执行foo函数
####第二波####
deffoo():
print'foo'
foo=lambdax:x+1
foo()#执行下面的lambda表达式,而不再是原来的foo函数,因为函数foo被重新定义了
2、需求来了
初创公司有N个业务部门,1个基础平台部门,基础平台负责提供底层的功能,如:数据库操作、redis调用、监控API等功能。业务部门使用基础功能时,只需调用基础平台提供的功能即可。如下:
###############基础平台提供的功能如下###############
deff1():
print'f1'
deff2():
print'f2'
deff3():
print'f3'
deff4():
print'f4'
###############业务部门A调用基础平台提供的功能###############
f1()
f2()
f3()
f4()
###############业务部门B调用基础平台提供的功能###############
f1()
f2()
f3()
f4()
目前公司有条不紊的进行着,但是,以前基础平台的开发人员在写代码时候没有关注验证相关的问题,即:基础平台的提供的功能可以被任何人使用。现在需要对基础平台的所有功能进行重构,为平台提供的所有功能添加验证机制,即:执行功能前,先进行验证。
老大把工作交给 Low B,他是这么做的:
跟每个业务部门交涉,每个业务部门自己写代码,调用基础平台的功能之前先验证。诶,这样一来基础平台就不需要做任何修改了。
当天Low B 被开除了…
老大把工作交给 Low BB,他是这么做的:
###############基础平台提供的功能如下###############
deff1():
#验证1
#验证2
#验证3
print'f1'
deff2():
#验证1
#验证2
#验证3
print'f2'
deff3():
#验证1
#验证2
#验证3
print'f3'
deff4():
#验证1
#验证2
#验证3
print'f4'
###############业务部门不变###############
###业务部门A调用基础平台提供的功能###
f1()
f2()
f3()
f4()
###业务部门B调用基础平台提供的功能###
f1()
f2()
f3()
f4()
过了一周 Low BB 被开除了…
老大把工作交给 Low BBB,他是这么做的:
只对基础平台的代码进行重构,其他业务部门无需做任何修改
###############基础平台提供的功能如下###############
defcheck_login():
#验证1
#验证2
#验证3
pass
deff1():
check_login()
print'f1'
deff2():
check_login()
print'f2'
deff3():
check_login()
print'f3'
deff4():
check_login()
print'f4'
老大看了下Low BBB 的实现,嘴角漏出了一丝的欣慰的笑,语重心长的跟Low BBB聊了个天:
老大说:
写代码要遵循开发封闭原则,虽然在这个原则是用的面向对象开发,但是也适用于函数式编程,简单来说,它规定已经实现的功能代码不允许被修改,但可以被扩展,即:
封闭:已实现的功能代码块
开放:对扩展开发
def w1(func): ==>将w1函数加载到内存
@w1
执行w1函数,并将 @w1 下面的函数作为w1函数的参数,即:@w1 等价于 w1(f1)
所以,内部就会去执行:
def inner:
#验证
return f1() # func是参数,此时 func 等于 f1
return inner # 返回的 inner,inner代表的是函数,非执行函数
其实就是将原来的 f1 函数塞进另外一个函数中将执行完的 w1 函数返回值赋值给@w1下面的函数的函数名
w1函数的返回值是:
def inner:
#验证
return 原来f1() # 此处的 f1 表示原来的f1函数
然后,将此返回值再重新赋值给 f1,即:
新f1 =def inner:
#验证
return 原来f1()
所以,以后业务部门想要执行 f1 函数时,就会执行 新f1 函数,在 新f1 函数内部先执行验证,再执行原来的f1函数,然后将 原来f1 函数的返回值 返回给了业务调用者。
如此一来, 即执行了验证的功能,又执行了原来f1函数的内容,并将原f1函数返回值 返回给业务调用着
如果将开放封闭原则应用在上述需求中,那么就不允许在函数 f1 、f2、f3、f4的内部进行修改代码,老板就给了Low BBB一个实现方案:
defw1(func):
definner():
#验证1
#验证2
#验证3
returnfunc()
returninner
@w1
deff1():
print'f1'
@w1
deff2():
print'f2'
@w1
deff3():
print'f3'
@w1
deff4():
print'f4'
对于上述代码,也是仅仅对基础平台的代码进行修改,就可以实现在其他人调用函数 f1 f2 f3 f4 之前都进行【验证】操作,并且其他业务部门无需做任何操作。
Low BBB心惊胆战的问了下,这段代码的内部执行原理是什么呢?
老大正要生气,突然Low BBB的手机掉到地上,恰恰屏保就是Low BBB的女友照片,老大一看一紧一抖,喜笑颜开,交定了Low BBB这个朋友。详细的开始讲解了:
单独以f1为例:
defw1(func):
definner():
#验证1
#验证2
#验证3
returnfunc()
returninner
@w1
deff1():
print'f1'
当写完这段代码后(函数未被执行、未被执行、未被执行),python解释器就会从上到下解释代码,步骤如下:
没错,从表面上看解释器仅仅会解释这两句代码,因为函数在没有被调用之前其内部代码不会被执行。
从表面上看解释器着实会执行这两句,但是 @w1 这一句代码里却有大文章,@函数名是python的一种语法糖。
如上例@w1内部会执行一下操作:
Low BBB 你明白了吗?要是没明白的话,我晚上去你家帮你解决吧!!!
先把上述流程看懂,之后还会继续更新…
3、问答时间
问题:被装饰的函数如果有参数呢?
#一个参数
defw1(func):
definner(arg):
#验证1
#验证2
#验证3
returnfunc(arg)
returninner
@w1
deff1(arg):
print'f1'
#两个参数
defw1(func):
definner(arg1,arg2):
#验证1
#验证2
#验证3
returnfunc(arg1,arg2)
returninner
@w1
deff1(arg1,arg2):
print'f1'
#三个参数
defw1(func):
definner(arg1,arg2,arg3):
#验证1
#验证2
#验证3
returnfunc(arg1,arg2,arg3)
returninner
@w1
deff1(arg1,arg2,arg3):
print'f1'
问题:可以装饰具有处理n个参数的函数的装饰器?
defw1(func):
definner(*args,**kwargs):
#验证1
#验证2
#验证3
returnfunc(*args,**kwargs)
returninner
@w1
deff1(arg1,arg2,arg3):
print'f1'
问题:一个函数可以被多个装饰器装饰吗?
defw1(func):
definner(*args,**kwargs):
#验证1
#验证2
#验证3
returnfunc(*args,**kwargs)
returninner
defw2(func):
definner(*args,**kwargs):
#验证1
#验证2
#验证3
returnfunc(*args,**kwargs)
returninner
@w1
@w2
deff1(arg1,arg2,arg3):
print'f1'
问题:还有什么更吊的装饰器吗?
#!/usr/bin/envpython
#coding:utf-8
defBefore(request,kargs):
print'before'
defAfter(request,kargs):
print'after'
defFilter(before_func,after_func):
defouter(main_func):
defwrapper(request,kargs):
before_result=before_func(request,kargs)
if(before_result!=None):
returnbefore_result;
main_result=main_func(request,kargs)
if(main_result!=None):
returnmain_result;
after_result=after_func(request,kargs)
if(after_result!=None):
returnafter_result;
returnwrapper
returnouter
@Filter(Before,After)
defIndex(request,kargs):
print'index'
❺ python的基本语法是什么
语法规则,条件语句、循环语句、方法、类那些。基本内数据类型,Python是弱类型需要容,但还是有类型的,这些类型的特点及操作。内置库API的使用,比如sqlite、网络请求库、json等。
Python由荷兰数学和计算机科学研究学会的Guido van Rossum于1990 年代初设计,作为一门叫做ABC语言的替代品。
Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。
Python解释器易于扩展,可以使用C或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。 Python 也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。
2021年10月,语言流行指数的编译器Tiobe将Python加冕为最受欢迎的编程语言,20年来首次将其置于Java、C和JavaScript之上。
❻ 如何运行Python程序的方法
1.
使用Python自带的IDLE
在开始-->程序-->Python2.5(视你安装的版本而不同)中找到IDLE(Python
GUI),
点击后弹出如下窗体:
在>>>提示符后输入代码,回车,就可以执行此代码。
IDLE支持语法高亮,支持自动缩进,支持方法提示,不过提示的很慢。
2.
在命令行窗口上运行
这种方法的前提是:你在系统的PATH变量中配置了Python的安装路径。
右键我的电脑-->属性-->高级-->环境变量,在系统变量列表中找到Path项,点击编辑按钮,在其中追加“C:\Python25;”(路径及版本视你安装而定),保存退出。
开始-->运行-->输入cmd,回车,开启一个CMD窗口。
在DOS提示符>后,输入python,回车,进入Python环境。
它的运行和IDLE基本一致,但是没有了语法高亮、自动缩进、方法提示,唯一的好处就是运行速度比IDLE快了些(如果你告诉我可以加参数运行python,那你就不算新手了,也不用看这篇文章了),所以用处不大。
退出此python环境使用Ctrl
+
Z,然后回车。
3.
以脚本方式运行
以上两种运行方式虽然简便,但是不适合大量代码的开发,只适合查看单句或少量几句代码的运行结果,或者验证某函数的调用方法,而这恰恰是我们平时调试、验证程序的常用方式。如果是正式的开发,则应该使用独立脚本的方式运行。
打开你的文本编辑器(我是用EmEditor,当然你使用记事本、写字板也都可以),输入python代码,保存成*.py文件,然后双击运行它就可以执行了,当然前提也是必须配置系统PATH变量。
l
在其所在目录下开启一个CMD窗口,输入python
*.py运行
l
在代码的最后增加如下语句:
raw_input()
然后你再双击运行,结果就会停留在那里,直到你敲击回车键才消失。
linux下运行Python程序,一般说来有以下两种形式,其实和Windows下基本一样。
一、在IDLE中运行
在终端窗口输入$
python进入交互式运行环境,然后就可以边输入边执行代码了:
>>>
print
'Hello
Python'
Hello
Python>>>退出使用Ctrl-D。
二、以脚本方式运行
在py脚本所在目录下输入
❼ #!/usr/bin/env python与#!/usr/bin/python的区别
在unix类的操作系统才有意义。
#!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器。
#!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。
(7)pythonenv扩展阅读:
Python是一种计算机程序设计语言。是一种动态的、面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。
Python常用的代码:,
1,生成随机数
rnd=random.randint(1,500):生成1-500之间的随机数
2,读文件
f=open("c:\1.txt","r")
lines=f.readlines()
forlineinlines
printline
3,写文件
f=open("c:\1.txt","r+"):可读可写模式
f.write("123"):写入字符串
4正则表达式,读取tomcat的日志并打印日期
importre
regx="dddd-dd-d+"
f=open("c:stdout.log","r")
i=0
forstrinf.readlines():
ifre.search(regx,str):
Response.write(str+"<br>")
ifi>10:break
i=i+1
f.close();
5,连接数据库
importpgdb
conn=pgdb.connect
(host='localhost',databse='qingfeng',user='qingfeng',password='123')
cur=conn.cursor()
cur.execute("select * from dream")
printcur.rowcount
❽ 如何删除python的虚拟环境
rmvirtualenv venv
virtualenv是一个创建隔绝的Python环境的工具。virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包。
安装
pip install virtualenv
基本使用
为一个工程创建一个虚拟环境:
- $ cd my_project_dir
- $ virtualenv venv#venv为虚拟环境目录名,目录名自定义
- $ virtualenv -p /usr/bin/python2.7 venv# -p参数指定Python解释器程序路径
要开始使用虚拟环境,其需要被激活:
- $ source venv/bin/activate
- $ pip install requests
如果你在虚拟环境中暂时完成了工作,则可以停用它:
- $ . venv/bin/deactivate
- pip install virtualenvwrapper
- pip install virtualenvwrapper-win#Windows使用该命令
- export WORKON_HOME=~/Envs
- source /usr/local/bin/virtualenvwrapper.sh
- source ~/.bashrc#读入配置文件,立即生效
- mkvirtualenv venv
- mkvirtualenv --python=/usr/local/python3.5.3/bin/python venv
- [root@localhost ~]# workon
- py2
- py3
- [root@localhost ~]# workon py3
- (py3) [root@localhost ~]#
- (py3) [root@localhost ~]# deactivate
- [root@localhost ~]#
- rmvirtualenv venv
virtualenvvenv将会在当前的目录中创建一个文件夹,包含了Python可执行文件,以及pip库的一份拷贝,这样就能安装其他包了。虚拟环境的名字(此例中是venv)可以是任意的;若省略名字将会把文件均放在当前目录。
在任何你运行命令的目录中,这会创建Python的拷贝,并将之放在叫做venv的文件中。
你可以选择使用一个Python解释器:
这将会使用/usr/bin/python2.7中的Python解释器。
从现在起,任何你使用pip安装的包将会放在venv文件夹中,与全局安装的Python隔绝开。
像平常一样安装包,比如:
这将会回到系统默认的Python解释器,包括已安装的库也会回到默认的。
要删除一个虚拟环境,只需删除它的文件夹。(执行rm-rfvenv)。
这里virtualenv 有些不便,因为virtual的启动、停止脚本都在特定文件夹,可能一段时间后,你可能会有很多个虚拟环境散落在系统各处,你可能忘记它们的名字或者位置。
virtualenvwrapper
鉴于virtualenv不便于对虚拟环境集中管理,所以推荐直接使用virtualenvwrapper。virtualenvwrapper提供了一系列命令使得和虚拟环境工作变得便利。它把你所有的虚拟环境都放在一个地方。
安装virtualenvwrapper(确保virtualenv已安装)
安装完成后,在~/.bashrc写入以下内容
第一行:virtualenvwrapper存放虚拟环境目录
第二行:virtrualenvwrapper会安装到python的bin目录下,所以该路径是python安装目录下bin/virtualenvwrapper.sh
virtualenvwrapper基本使用
1.创建虚拟环境mkvirtualenv
这样会在WORKON_HOME变量指定的目录下新建名为venv的虚拟环境。
若想指定python版本,可通过"--python"指定python解释器
2. 基本命令
查看当前的虚拟环境目录
切换到虚拟环境
退出虚拟环境
删除虚拟环境
❾ python基础语法知识询问
由于Python语言的简洁、易读以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python教导学生程序设计的首选编程语言。例如麻省理工学院的计算机科学及编程导论课程就使用Python语言讲授。
想必大家还想了解到更多知识技能,接下来就跟千锋武汉Python培训的老师就来分享一下Python基础语法的四大知识点,希望大家会喜欢。
一、标识符
a)概念:对变量,常量,函数,类等对象起的名字。严格区分大小写。
b)标识符命名规则:
语法要求(硬性):
i.必须以字母或者下划线开头(支持中文,中文也是字符)
ii.必须以字母,数字,下划线组成
iii.区分大小写
iv.不能和关键字和内置函数名同名。
代码规范(弹性):
v.变量名全部小写,常量全部大写(代码规范,不是语法要求)
vi.类名用大写驼峰(代码规范)、
vii.模块和包名用小写
二、关键字
a)Import keyword keyword.kwlist 查看所有关键字
三、注释
a)单行:#开头
b)多行:每行使用#
c)文档注释:使用三个引号包括起来(””” XXX “””),这种注释专门为函数或者类形成说明文档。注释必须跟在定义体下面,不能再任意位置。
四、代码头两行
a)#!/usr/bin/env Python:指定运行代码的解释器,linux专用,windows不需要。在linux下添加改行,则可以使用./xxx.py执行。如果使用Python xxx.py则不需要改行。
b)# -*- coding:utf-8 -*- :代码的编码方式
❿ Windows环境下安装第2个Python(不同版本)
系统已经安装的3.10,现在需要安装另一个3.9版本的Python。
安装目录不同于现有已安装Python版本的目录
找到安装目录的两个exe文件:
C:.exe
C:w.exe
将其改名为:
C:39.exe
C:w39.exe
添加python3.9.12安装目录:
C:yaoinstallPythonPython39
C:
创建虚拟环境
进入虚拟环境文件夹,执行activate.bat
C:.bat
查看python版本,使用python和python39都可以查看。
这里有点晕,为什么python和python39两者都可以运行呢?
退出虚拟环境方法:
python3.9安装成功,昨天基于python3.10无法安装。