Python日常笔记

原文引用https://www.dazhuanlan.com/2019/08/25/5d623abdb609d/


关闭*.pyc文档生成

import 别的 py 文档时,那个 py 文档会被存一份 pyc 加速下次装载。

但是测试时为了不影响目录结构可以关闭:

import sys
sys.dont_write_bytecode = True

安装pip

1.安装easy_install

wget https://bootstrap.pypa.io/ez_setup.py --no-check-certificate
python ez_setup.py --insecure

2.安装pip 下载地址:https://pypi.python.org/pypi/pip

解压,安装.
wget https://pypi.python.org/packages/source/p/pip/pip-7.1.2.tar.gz#md5=3823d2343d9f3aaab21cf9c917710196
tar -zxvf pip-7.1.2.tar.gz 
cd pip-7.1.2
python setup.py install

安装pip (推荐用该方法,自动集成依赖)

apt-get install python-pip  # Ubuntu

yum install python-pip   # RedHat

pip使用国内源

linux的文档在~/.pip/pip.conf,windows在%HOMEPATH%pippip.ini

[global]
index-url = http://pypi.douban.com/simple
[install]
trusted-host = pypi.douban.com

使用多个源(备用):

[global]
timeout=40
index-url = http://mirrors.aliyun.com/pypi/simple/
extra-index-url = http://pypi.douban.com/simple/
[install]
trusted-host=
    mirrors.aliyun.com
    pypi.douban.com

pypi国内镜像目前有:

http://pypi.douban.com/simple/  豆瓣
http://mirrors.aliyun.com/pypi/simple/  阿里云

pip参数解释

# pip --help

Usage:
  pip <command> [options]

Commands:
  install                     安装软件.
  uninstall                   卸载软件.
  freeze                      按着一定格式输出已安装软件列表
  list                        列出已安装软件.
  show                        显示软件详细信息.
  search                      搜索软件,类似yum里的search.
  wheel                       Build wheels from your requirements.
  zip                         不推荐. Zip individual packages.
  unzip                       不推荐. Unzip individual packages.
  bundle                      不推荐. Create pybundles.
  help                        当前帮助.

General Options:
  -h, --help                  显示帮助.
  -v, --verbose               更多的输出,最多可以使用3次
  -V, --version               现实版本信息然后退出.
  -q, --quiet                 最少的输出.
  --log-file <path>           覆盖的方式记录verbose错误日志,默认文档:/root/.pip/pip.log
  --log <path>                不覆盖记录verbose输出的日志.
  --proxy <proxy>             Specify a proxy in the form [user:passwd@]proxy.server:port.
  --timeout <sec>             连接超时时间 (默认15秒).
  --exists-action <action>    Default action when a path already exists: (s)witch, (i)gnore, (w)ipe, (b)ackup.
  --cert <path>               证书.

Anaconda conda 的使用

miniconda安装 (官方下载地址:https://conda.io/miniconda.html):

wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh
bash Miniconda2-latest-Linux-x86_64.sh

scipy安装(指定清华源):

conda install -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r scipy

修改conda为国内源:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes

直接安装:

conda install numpy
conda install scikit-learn

神经网络依赖包:

conda install numpy
conda install pandas
conda install scipy

查看安装列表:

conda list
# packages in environment at /root/miniconda2:
#
cffi                      1.9.1                    py27_0  
conda                     4.3.13                   py27_0  
conda-env                 2.6.0                         0  
cryptography              1.7.1                    py27_0  
enum34                    1.1.6                    py27_0  
idna                      2.2                      py27_0  
ipaddress                 1.0.18                   py27_0  
libffi                    3.2.1                         1  
libgfortran               3.0.0                         1  
mkl                       2017.0.1                      0  
numpy                     1.12.0                   py27_0  
openssl                   1.0.2k                        0  
pip                       9.0.1                    py27_1  
pyasn1                    0.1.9                    py27_0  
pycosat                   0.6.1                    py27_1  
pycparser                 2.17                     py27_0  
pyopenssl                 16.2.0                   py27_0  
python                    2.7.13                        0  
readline                  6.2                           2  
requests                  2.12.4                   py27_0  
ruamel_yaml               0.11.14                  py27_1  
scikit-learn              0.18.1                    <pip>
scipy                     0.18.1              np112py27_1  
setuptools                27.2.0                   py27_0  
six                       1.10.0                   py27_0  
sklearn                   0.0                       <pip>
sqlite                    3.13.0                        0  
tk                        8.5.18                        0  
wheel                     0.29.0                   py27_0  
yaml                      0.1.6                         0  
zlib                      1.2.8                         3  

py文档打包编译成可执行文档

windows下编译成exe

1.使用py2exe

建立setup.py

from distutils.core import setup
import py2exe
setup(console=['app.py'])

执行

python setup.py py2exe

2.使用pyinstaller

执行

pyinstaller --distpath .dist_pyinstaller --workpath .build_pyinstaller -F app.py -n out.exe

Linux下编译成可执行文档

1.pyinstaller支持linux下编译打包,使用方法和windows下一致

pyinstaller --distpath ./dist_pyinstaller --workpath ./build_pyinstaller -F app.py -n out

Python二维码识别库

apt-get install python-qrtools

使用方法:

#!/usr/bin/env python
import qrtools
qr = qrtools.QR()
qr.decode("qr.png")
print qr.data

python有序字典

import collections

d = collections.OrderedDict()

d['a'] = 'A'
d['b'] = 'B'
d['c'] = 'C'

用Python建立最简单的web服务器

python -m SimpleHTTPServer 8080

用PHP建立最简单的web服务器

Example #1 启动Web服务器  服务于当前目录
$ php -S localhost:8000

Example #2 启动时指定根目录
$ php -S localhost:8000 -t malu/

Example #3 使用路由(Router)脚本
$ php -S localhost:8000 router.php

错误

pip list 显示错误异常:

[ root@0d4c1b027902:~ ]$ pip list
argparse (1.2.1)
Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/list.py", line 80, in run
    self.run_listing(options)
  File "/usr/lib/python2.7/dist-packages/pip/commands/list.py", line 142, in run_listing
    self.output_package_listing(installed_packages)
  File "/usr/lib/python2.7/dist-packages/pip/commands/list.py", line 151, in output_package_listing
    if dist_is_editable(dist):
  File "/usr/lib/python2.7/dist-packages/pip/util.py", line 366, in dist_is_editable
    req = FrozenRequirement.from_dist(dist, [])
  File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 286, in from_dist
    assert len(specs) == 1 and specs[0][0] == '=='
AssertionError

Storing debug log for failure in /root/.pip/pip.log

解决办法:

Done!

中文乱码问题3条建议

  • 所有 text string 都应该是 unicode 类型,而不是 str,如果你在操作 text,而类型却是 str,那就是在制造 bug。
  • 在需要转换的时候,显式转换。从字节解码成文本,用 var.decode(encoding),从文本编码成字节,用 var.encode(encoding)。
  • 从外部读取数据时,默认它是字节,然后 decode 成需要的文本;同样的,当需要向外部发送文本时,encode 成字节再发送。

常用Python包

1、pip freeze > requirements.txt 将当前环境中的包的名称及版本导出到文本中

2、然后在另一个环境中 pip install -r requirements.txt 安装

Python3常用包安装:

apt-get install -y libcurl4-openssl-dev libsmbclient-dev python-pip python3-pip

pip3 install pysimplesoap

pip3 install -r requirements.txt

[ root@base:~ ]$ cat requirements.txt 
altgraph==0.15
asn1crypto==0.24.0
beautifulsoup4==4.6.0
binwalk==2.1.0
bs4==0.0.1
cached-property==1.4.2
certifi==2018.1.18
chardet==2.3.0
configparser==3.5.0
crcelk==1.1
cryptography==2.1.4
cssselect==1.0.1
cycler==0.10.0
Cython==0.26.1
decorator==4.0.11
docker-pycreds==0.3.0
dockerpty==0.4.1
docopt==0.6.2
future==0.16.0
hashID==3.1.4
html5lib==0.999999999
httplib2==0.9.2
idna==2.6
inflect==0.2.5
jaraco.itertools==2.1
jsonschema==2.6.0
keyring==10.6.0
keyrings.alt==3.0
louis==1.3
lxml==4.1.1
macholib==1.9
matplotlib==2.0.0
more-itertools==4.0.1
numpy==1.12.1
olefile==0.45.1
pefile==2017.11.5
Pillow==4.0.0
pyasn1==0.1.9
pycrypto==2.6.1
pycurl==7.43.0
pygobject==3.26.1
PyInstaller==3.3.1
pymongo==3.1.1
PyOpenGL==3.1.0
pyparsing==2.1.10
pyqtgraph==0.10.0
pyquery==1.3.0
pyserial==3.2.1
PySimpleSOAP==1.16.2
pysmbc==1.0.15.6
python-dateutil==2.5.3
python-debian==0.1.30
python-debianbts==2.6.1
pytz==2016.7
pyxdg==0.25
PyYAML==3.12
requests==2.12.4
scipy==0.18.1
SecretStorage==2.3.1
selenium==3.7.0
six==1.10.0
smoke-zephyr==1.0.2
ssh-import-id==5.7
termineter==0.2.6
texttable==0.9.1
urllib3==1.19.1
webencodings==0.5
websocket-client==0.48.0
xmltodict==0.11.0

猜你喜欢

转载自www.cnblogs.com/petewell/p/11408225.html
今日推荐