Centos7minimal安装playwright和firefox、chromium,终于跑起来了

系统环境为CentOS Linux release 7.9.2009 (Core) 最小安装,考虑到playwright的安装需要python3.7+,本次直接选择安装python3.10。Centos7 Python3.10安装部署 之后就开始一波三折的折腾了,最终完成并运行了脚本,模拟浏览器。

1、python3.10安装成功后,就可直接安装playwright

pip3 install playwright -i https://pypi.tuna.tsinghua.edu.cn/simple

2、python3 -m playwright install 将安装模拟的浏览器,firefox、chromium,但在这一步在centos7下会有大量缺少的依赖文件。

解决第一次报错

/usr/local/lib/python3.10/site-packages/playwright/driver/node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by /usr/local/lib/python3.10/site-packages/playwright/driver/node)
/usr/local/lib/python3.10/site-packages/playwright/driver/node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by /usr/local/lib/python3.10/site-packages/playwright/driver/node)
/usr/local/lib/python3.10/site-packages/playwright/driver/node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by /usr/local/lib/python3.10/site-packages/playwright/driver/node)
/usr/local/lib/python3.10/site-packages/playwright/driver/node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /usr/local/lib/python3.10/site-packages/playwright/driver/node)
/usr/local/lib/python3.10/site-packages/playwright/driver/node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/local/lib/python3.10/site-packages/playwright/driver/node)
/usr/local/lib/python3.10/site-packages/playwright/driver/node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/local/lib/python3.10/site-packages/playwright/driver/node)
解决过程
yum install -y centos-release-scl
yum install -y devtoolset-8-gcc*
mv /usr/bin/gcc /usr/bin/gcc-old
ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++-old
ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++


wget http://ftp.gnu.org/gnu/make/make-4.3.tar.gz
tar -xzvf make-4.3.tar.gz && cd make-4.3/
./configure  --prefix=/usr/local/make
make && make install
cd /usr/bin/ && mv make make.old
ln -sv /usr/local/make/bin/make /usr/bin/make


yum install -y bison

wget http://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz
tar xf glibc-2.28.tar.gz 
cd glibc-2.28/ && mkdir build  && cd build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin



Please read the FAQ and the README file and check the following:
- Did you change the gcc specs file (necessary after upgrading from
  Linux libc5)?
- Are there any symbolic links of the form libXXX.so to old libraries?
  Links like libm.so -> libm.so.5 (where libm.so.5 is an old library) are wrong,
  libm.so should point to the newly installed glibc file - and there should be
  only one such link (check e.g. /lib and /usr/lib)
You should restart this script from your build directory after you've
fixed all problems!
Btw. the script doesn't work if you're installing GNU libc not as your
primary library!

出现这个,算完成。

解决第二次报错


python3 -m playwright install 
/usr/local/lib/python3.10/site-packages/playwright/driver/node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /usr/local/lib/python3.10/site-packages/playwright/driver/node)
/usr/local/lib/python3.10/site-packages/playwright/driver/node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/local/lib/python3.10/site-packages/playwright/driver/node)
/usr/local/lib/python3.10/site-packages/playwright/driver/node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/local/lib/python3.10/site-packages/playwright/driver/node).
#解决过程,使用了docker下的libstdc++.so.6.0.28
[root@localhost build]# find / -name "libstdc++.so.*"
/root/vmware-tools/vmware-tools-distrib/lib/lib64/libstdc++.so.6
/root/vmware-tools/vmware-tools-distrib/lib/lib64/libstdc++.so.6/libstdc++.so.6
/root/vmware-tools/vmware-tools-distrib/lib/lib32/libstdc++.so.6
/root/vmware-tools/vmware-tools-distrib/lib/lib32/libstdc++.so.6/libstdc++.so.6
/var/lib/docker/overlay2/124c8f0126e753f480557a2ce60e544cc8dabb278c9eba6d01681f091d266ebb/diff/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/var/lib/docker/overlay2/124c8f0126e753f480557a2ce60e544cc8dabb278c9eba6d01681f091d266ebb/diff/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28
/var/lib/docker/overlay2/124c8f0126e753f480557a2ce60e544cc8dabb278c9eba6d01681f091d266ebb/diff/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28-gdb.py
/usr/lib/vmware-tools/lib64/libstdc++.so.6
/usr/lib/vmware-tools/lib64/libstdc++.so.6/libstdc++.so.6
/usr/lib/vmware-tools/lib32/libstdc++.so.6
/usr/lib/vmware-tools/lib32/libstdc++.so.6/libstdc++.so.6
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.19
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
/usr/local/elasticsearch-6.1.2-old/plugins/x-pack/platform/linux-x86_64/lib/libstdc++.so.6


cd /usr/lib64
mv libstdc++.so.6 libstdc++.so.6.bak
ln -s /var/lib/docker/overlay2/124c8f0126e753f480557a2ce60e544cc8dabb278c9eba6d01681f091d266ebb/diff/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28 ./libstdc++.so.6


python3 -m playwright install 成功运行


3、运行脚本时还有报错


运行脚本时还报错

playwright._impl._api_types.Error: 
╔══════════════════════════════════════════════════════╗
║ Host system is missing dependencies to run browsers. ║
║ Missing libraries:                                   ║
║     libXcomposite.so.1                               ║
║     libXtst.so.6                                     ║
║     libgtk-3.so.0                                    ║
║     libgdk-3.so.0                                    ║
║     libatk-1.0.so.0                                  ║
║     libcairo-gobject.so.2                            ║
╚══════════════════════════════════════════════════════╝
解决



yum install libXcomposite
yum install libXtst
yum install gtk3
完成!


注意,因为使用的centos系统是没有GUI界面的,所以python脚本一定要设置不显示浏览器,隐藏运行。


browser = await p.firefox.launch(headless=True, )


相关推荐

猜你喜欢

Linux安装php imagick扩展

yum install autoconf gcc gcc-c++ ImageMagick-devel wget https://pecl.php.net/get/imagick-3.4.4.tgz ...

自用实践两台电脑共用一个音响的方案

自用实践两台电脑共用一个音响的方案

家里有两台电脑,其中有一台不常用的也只有打游戏联机的时候才开,不想单独配一个音箱,于是必须实践两台电脑共用一个音响的方案。 本次方案就是加一条音频线,连接两台电脑,效果如下: 一般主板都有音频输入和...

centos7重置root密码,解决忘记密码的问题

centos7重置root密码,解决忘记密码的问题

重新重启,光标在界面上第一行 按e 。 输入rw single init=/bin/bash 后,按 ctrl+x 引导系统,不要按esc。 使用passwd命令重置密码,并使用touch /.au...

pytroch AI机器学习环境部署,RTX3080显卡

pytroch AI机器学习环境部署,RTX3080显卡

网上关于机器学习环境部署的文章资料很多,有些可能只是一部分过程,有些则写得很长很长,遇到一些比较好的但要专业知识才能看得懂。 个人曾经看了一个80分钟环境部署视频,事实上只需要一页文档就能说清楚的,视...