Skip to content

Latest commit

 

History

History
280 lines (161 loc) · 4.27 KB

File metadata and controls

280 lines (161 loc) · 4.27 KB

Python

相关文档

安装

1.安装依赖包

yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel zlib* libffi-devel  -y

2.下载python源码包到指定目录

cd /usr/local/src
wget https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tgz

#其他版本:
#37)
wget https://www.python.org/ftp/python/3.7.12/Python-3.7.12.tgz
#39)
wget https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tgz
wget https://registry.npmmirror.com/-/binary/python/3.9.10/Python-3.9.10.tgz

3.创建安装目录并安装

mkdir -p /usr/local/python3

# 解压
tar -zxvf Python-3.8.12.tgz

# 安装编译器gcc
yum install gcc

# 安装libffi-devel(3.7版本之后需要的包), 上面已经安装就不需要了
yum install libffi-devel -y

cd Python-3.8.12
.configure --prefix=/usr/local/python3
make && make install

4.检查是否安装成功

/usr/local/python3/bin/python3 -V

5.建立python软链接

ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3  /usr/bin/pip3

6.添加环境变量

vim /etc/profile

最后添加代码
export PATH=$PATH:$HOME/bin:/usr/local/python3/bin

# 立即生效
source /etc/profile

Pip加速

查看当前使用的镜像:

pip3 config get global.index-url

1.临时使用

pip install markdown -i https://pypi.tuna.tsinghua.edu.cn/simple

2.切换镜像源

# 清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 阿里源
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
# 腾讯源
pip config set global.index-url http://mirrors.cloud.tencent.com/pypi/simple
# 豆瓣源
pip config set global.index-url http://pypi.douban.com/simple/




# 永久设置
Windows)
Ctrl+R -> 输入%APPDATA% -> 在该目录下创建文件夹pip -> 创建文件pip.ini
添加内容:
[global]
index-url=https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com

虚拟环境

# 创建虚拟环境
python -m venv venv[环境名称]

# 激活
source venv/bin/activate
# 退出虚拟环境
deactivate

使用

多线程+线程池

import threading
for list in lists['results']:
    t = threading.Thread(target=run, args=(list,))
    t.start()

#线程池
from concurrent.futures import ThreadPoolExecutor

with ThreadPoolExecutor(max_workers=30) as executor:
    for ret in executor.map(fetch_category, articles['hits']):
        if ret['code']:
            print(ret['msg'])
        else:
            print(ret['data'])

多进程+进程池

import multiprocessing

pool = multiprocessing.Pool()
pages = range(1, PAGE_SIZE+1)
    pool.map(main, pages)
    pool.close()
    pool.join()

部署

添加系统进程管理

文件路径: /usr/lib/systemd/system/django_rq.service

[Unit]
Description=Django-RQ Worker
After=network.target

[Service]
WorkingDirectory=<path_to_your_project_folder>
ExecStart=/home/ubuntu/.virtualenv/<your_virtualenv>/bin/python \
    <path_to_your_project_folder>/manage.py \
    rqworker high default low

[Install]
WantedBy=multi-user.target

可以使用systemctl start/status/stop等命令管理该进程

常用第三方包

基础

# 数据类型
## 字符串
'''
1.索引切片 [开始索引:结束索引:步长]   顾头不顾尾
[:3]       0到3
[2:]       2到最后一位
[1:8:2]    从1到8,隔一个取一个值
[:]        复制整个内容
[::-1]     字符串反转

2.拼接
1) str1 + str2
2) f''
3) 'xxx: %s' % (str1)
4) "name: {1} age:{age}".format(lixing, age=23)

3. 字符串复制拼接
str1 * 10  : 重复10个str1的字符串拼接成一个新串

4.判断成员是否存在
substr1 in str1

5. input 得到的是字符串





## 浮点型

## 布尔值
True | False


## 元祖


## 列表

## 字典

## None



'''