Python
目录
常用代码
name = "{:09d}".format(exist_count + count) # 生成固定位数数字 assert args.config is not None "Please specify --config=configure_file_path."
多线程和多进程
https://blog.csdn.net/zong596568821xp/article/details/99678390
对于Python如果是CPU密集型应该用多进程模型(大量的计算)
如果是IO密集型应该用多线程模型(数据的读取写入、网络IO数据传输)
由于GIL的存在,CPython不能有效的利用多核处理器,表现为任意时间一个进程只有一个线程在跑;而IO密集型运算,多数是在IO读写将线程堵塞掉了,这个时候线程切换是很合理的,反正线程只是单纯地等待,在这个等待的时候去做其他的事情,资源利用率就上去了。
python的多线程只能使用一个cpu核心,io密集型应用,本来cpu占用率就很低(主要原因还是GIL锁)
python多线程这个限制和协程有点像,应用也很像,都是适合io密集型
安装
参考PaddleOCR#anaconda和paddlepaddle-gpu
anaconda
https://repo.anaconda.com/archive/
https://blog.csdn.net/qq_63157065/article/details/124310379
cd /alidata/soft nohup wget https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh &>out.log & sh Anaconda3-2022.10-Linux-x86_64.sh
如果出现libz.so.1错误
mkdir -p /alidata/server/anaconda3 ln -s /alidata/server/anaconda3 /root/anaconda3 mkdir -p /alidata/server/tmpconda TMPDIR=/alidata/server/tmpconda bash Anaconda3-2022.10-Linux-x86_64.sh -u
source /root/anaconda3/bin/activate conda create -n paddle_env python=3.7 conda activate paddle_env
conda remove -n py37 --all python --version
conda update -n base -c defaults conda
其他安装方式
wget https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tgz & tar -xzvf Python-3.7.7.tgz
cd /alidata/server/Python-3.7.7 ./configure --prefix=/alidata/server/Python-3.7.7 make && make install
如果执行 ./configure 命令配置环境,没有指定安装目录,默认安装在/usr/local 下,/usr/bin 会存放python命令,应该没有必要建立软连接吧,如果是这样,后续命令不用执行,直接测试
默认python命令是在/usr/bin/目录下,为python2.7版本,需要在这里把软链修改成3.7的版本
ln -s /alidata/server/Python-3.7.7/bin/python3.7 /usr/bin/python3
设置pip的软连接
ln -s /alidata/server/Python-3.7.7/bin/pip3.7 /usr/bin/pip3
ln -s /alidata/server/Python-3.7.7/bin/virtualenv /usr/bin/virtualenv
https://www.cnblogs.com/Blogwj123/p/15523225.html
yum install libsqlite3-dev libsqlite3 sqlite-devel
%PYTHON_HOME% %PYTHON_HOME%\Scripts
python -m ensurepip
cd %PYTHON_HOME% curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 下载安装脚本 python get-pip.py
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
rm -rf /usr/bin/python ln -s /alidata/server/Python-3.7.7/bin/python3.7 /usr/bin/python
rm -rf /usr/bin/pip ln -s /alidata/server/Python-3.7.7/bin/pip3.7 /usr/bin/pip
rm -rf /usr/bin/virtualenv ln -s /alidata/server/Python-3.7.7/bin/virtualenv /usr/bin/virtualenv
python3 -V
cd /alidata/server wget https://www.python.org/ftp/python/3.8.16/Python-3.8.16.tgz & tar -xzvf Python-3.8.16.tgz cd /alidata/server/Python-3.8.16 ./configure --prefix=/alidata/server/Python-3.8.16 make && make install
rm -rf /usr/bin/python ln -s /alidata/server/Python-3.8.16/bin/python3.8 /usr/bin/python
rm -rf /usr/bin/pip ln -s /alidata/server/Python-3.8.16/bin/pip3.8 /usr/bin/pip
rm -rf /usr/bin/python ln -s /usr/bin/python2.7 /usr/bin/python rm -rf /usr/bin/pip ln -s /usr/bin/pip2.7 /usr/bin/pip
pip3 install --upgrade pip pip3 install virtualenv
- 进入目录
mkdir -p /ling-cloud/kownlege/envs cd /ling-cloud/kownlege/envs
3.创建独立运行环境-命名
virtualenv venv -p /alidata/server/Python-3.7.7/bin/python3.7
- 进入虚拟环境
- 激活
source /ling-cloud/kownlege/envs/venv/bin/activate
- 退出
deactive
文件操作
https://blog.csdn.net/Dream_Gao1989/article/details/110313119
- 如果没有增加模式 b ,则默认创建的是文本文件对象,处理的基本单元是“字符”。
- 如果是二进制模式 b ,则创建的是二进制文件对象,处理的基本单元是“字节”。
问题
重新安装yum
https://blog.csdn.net/weixin_70577348/article/details/126576390 1、删除现有Python
rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps ##强制删除已安装程序及其关联
whereis python |xargs rm -frv ##删除所有残余文件 ##xargs,允许你对输出执行其他某些命令
whereis python ##验证删除,返回无结果
2、删除现有的yum
rpm -qa|grep yum|xargs rpm -ev --allmatches --nodeps
whereis yum |xargs rm -frv
mkdir -p /alidata/server/reyum && cd /alidata/server/reyum
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/python-chardet-2.2.1-3.el7.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/python-devel-2.7.5-89.el7.x86_64.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/python-libs-2.7.5-89.el7.x86_64.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/python-pycurl-7.19.0-19.el7.x86_64.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/python-setuptools-0.9.8-7.el7.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/python-urlgrabber-3.10-10.el7.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/rpm-python-4.11.3-45.el7.x86_64.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/libxml2-python-2.9.1-6.el7.5.x86_64.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/python-2.7.5-89.el7.x86_64.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-plugin-aliases-1.1.31-54.el7_8.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-plugin-protectbase-1.1.31-54.el7_8.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-updateonboot-1.1.31-54.el7_8.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-utils-1.1.31-54.el7_8.noarch.rpm
rpm -ivh --force *.rpm --nodeps
No module named _sqlite3
https://www.zhihuclub.com/97028.shtml
wget https://www.sqlite.org/2023/sqlite-autoconf-3410000.tar.gz --no-check-certificate
rm -rf /usr/local/lib/sqlite3
cd /usr/bin mv sqlite sqlite_barkup mv sqlite3 sqlite3_barkup mv sqlite3-dbf sqlite3-dbf_barkup
cd /alidata/server/sqlite-autoconf-3410000 ./configure -prefix=/usr/local/lib/sqlite3 make && make install
whereis sqlite3 /usr/local/lib/sqlite3/bin/sqlite3 -version
ln -s /usr/local/lib/sqlite3/bin/sqlite3 /usr/bin/sqlite3
重新创建 envs