Python

来自ling
跳转至: 导航搜索

常用代码

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

https://www.python.org/

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


  1. 进入目录
mkdir -p /ling-cloud/kownlege/envs
cd /ling-cloud/kownlege/envs

3.创建独立运行环境-命名

virtualenv venv -p /alidata/server/Python-3.7.7/bin/python3.7
  1. 进入虚拟环境
  1. 激活
source /ling-cloud/kownlege/envs/venv/bin/activate
  1. 退出
deactive

文件操作

https://blog.csdn.net/Dream_Gao1989/article/details/110313119

  1. 如果没有增加模式 b ,则默认创建的是文本文件对象,处理的基本单元是“字符”。
  2. 如果是二进制模式 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