1.安装依赖包
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel zlib* libffi-devel -y2.下载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 install4.检查是否安装成功
/usr/local/python3/bin/python3 -V5.建立python软链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip36.添加环境变量
vim /etc/profile
最后添加代码
export PATH=$PATH:$HOME/bin:/usr/local/python3/bin
# 立即生效
source /etc/profile查看当前使用的镜像:
pip3 config get global.index-url
1.临时使用
pip install markdown -i https://pypi.tuna.tsinghua.edu.cn/simple2.切换镜像源
# 清华源
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等命令管理该进程
- fake-useragent (代理伪造,随机生成UA)
- [loguru](https://github.com/Delgan/loguru (日志记录器)
# 数据类型
## 字符串
'''
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
'''