首页 > 代码库 > 20170523

20170523

1.Building your own shop -Oscar
1.1 pip就是一个包管理器
1.2离线pip下载Python包
这几天搞Windows离线断网环境下安装Python包,配置环境,各种坑!做个记录,供以后查询吧。
# 生产环境 windows xp# python 2.7# pip 8.1.2 
友情提示:当你遇到无法安装包的不明错误时,可以回头来考虑如下建议了:
一、更新 pip版本 
1.下载最新 pip
新建packages文件夹放在目录中:d:python27packages。
Unofficial Windows Binaries for Python Extension Packages
从该网站提供的编译好的包下载最新版本
pip-8.1.2-py2.py3-none-any.whl和 wheel-0.29.0-py2.py3-none-any.whl,在packages文件夹中。
离线安装 pip时,这两个包需要准备好。
2.安装下载好的 pip
进入python27目录(目录下有python.exe),也放在该目录。
从 pip文档下载 get-pip.py
get-pip下载链接
cmd窗口执行
python.exe get-pip.py --no-index --find-links=d:/python27/packages PS:如果你可以联网,那么安装 pip就方便多了,执行 python get-pip.py。
二、保存python包,并且离线安装包
方案 1.在可以联网的开发机器上安装好需要的包
例如:
pip install numpypip install pandas 
  2.打包已安装的包
在D:python27目录下新建 packages文件夹用来存储下载下来的所需安装包。
在 D:Python27/Scripts下启动cmd窗口。
pip list #查看安装的包
pip freeze >requirements.txt
pip install --download d:/python27/packages -r requirements.txt
3.离线情况安装打包好的包
将 packages文件夹和 requirement.txt拷贝至离线机器上目录下, packages文件夹放在D:Python27下, requirement.txt放在D:Python27/Scripts下。 
pip install --no-index --find-link=d:/python27/packages -r requirements.txt

补充
1.下载指定的包到指定文件夹。在 D:Python27/Scripts下启动cmd窗口。
pip install --download d:/python27/packs pandas 或
  pip install --download d:/python27/packs -r requirements.txt
2.安装指定的离线包
pip install --no-index --find-links=d:/python27/packs/ pandas 或 
pip install --no-index --find-links=d:/python27/packs/ -r requirements.txt 
1.3Can‘t deploy Django app on Python Anywhere: ImportError: No module named ‘environ‘
pip install -r requirements.txt
1.4:psutil
1.5ctrl+r配置raid r230

1.完整的分片形式现在变成了X[I:J:K]。这表示“索引X对象中的元素,从偏移为I直到偏移为J-1,每隔K元素索引一次”。第三个限制K,默认为1,这也就是通常在一个切片从左至右提取每一个元素的原因。如果定义了一个明确的值,那么能够使用第三个限制去跳过某些元素或反向排列他们的顺序。
>>> x = ‘abcdefghijklmn‘ 
>>> x[::2] 
‘acegikm‘
如同往常,第一个和第二个限制值默认为0以及序列的长度,所以,x[::2]会取出序列从头到尾、每隔一个元素的元素。
也可以使用负数作为步进。例如,分片表达式“hello”[::-1]返回一个新的字符串“olleh”,步进-1表示分片将会从右至左进行而不是通常的从左至右。因此,实际效果就是将序列进行反转:
>>> S = ‘hello‘ 
>>> S[::-1] 
‘olleh
2.__getitem__既针对基本索引调用,又针对分片调用。
3. list(map(str.upper,X))
和__getitem__不同的是,__iter__只循环一次,而不是循环多次。每次新的循环,都得创建一个新的迭代器对象
4.使用zip构造字典,非常方便。
示例:
keys = [‘spam‘,‘eggs‘,‘toast‘]
vals = [1,3,5]
list(zip(keys,vals)) 
D2 = {}
for (k,v) in zip(keys,vals):
D2[k] = v
print(D2)
运行结果为:{‘toast‘: 5, ‘eggs‘: 3, ‘spam‘: 1}
在python2.2和后续版本中,可以完全跳过for循环,直接把zip过的健/值列表传给内置的dict构造函数,以上划线部分可以换做D3 = dict(zip(keys,vals))。
内置变量名dict其实是python中的类型名称。
4.1成员关系:__contains__、__iter__和__getitem__
__getattr__方法是拦截属性点号运算

20170523