windows下安装Opencv@python

经历了mac下安装opencv,几乎用了2天时间踩各种坑。没有想到,windows上的安装异常顺利,今天上班后,大概10分钟就安装完毕,并且运行sample一次成功。

在power shell里输入如下命令

pip install numpy
pip install opencv_python
pip install opencv-contrib-python

然后,就ok了(前提是已经安装好python和studio code)

查看opencv版本如下

python
import cv2
cv2.__version__ #注意是两个下划线

我猜想,windows对opencv支持的如此好,原因是opencv毕竟来自intel

解决opencv演示sample问题/安装python3缺少的numpy库

在macbook pro上,无法正常演示opencv自带的sample文件,显示没有numpy库。

发现如果使用python2是正常的,而是python3(也包括visual studio code)缺少对应的库,解决问题方法如下。

查看目前库

首先通过list命令,对比pip和pip3,即python2(mac自带)和python3相关库的情况,结果是python的非常少

pip list
pip3 list 

也可以用freeze命令。

pip3 freeze

安装numpy库

正常采用如下命令

pip3 install numpy

但是国外的源太慢,更换成科大的,速度飞起

pip3 install --index-url https://pypi.mirrors.ustc.edu.cn/simple/ numpy

下图是通过科大源安装matplotlib的情况,速度快如闪电。
Screen Shot 2021-02-17 at 11.03.13 PM

如下是国内源列表

    清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/

    阿里云 http://mirrors.aliyun.com/pypi/simple/

    中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

    豆瓣(douban) http://pypi.douban.com/simple/

参考如下
国内源
pip vs pip3
numpy tutorial 1/official
numpy tutorials 2

验证numpy是否安装的小技巧

numpy

如下

>>> from numpy import *
>>> eye(4)
array([[1., 0., 0., 0.],
       [0., 1., 0., 0.],
       [0., 0., 1., 0.],
       [0., 0., 0., 1.]])

Brew

mac更新到big sur之后,brew运行就不正常。在发现使用更新中科大源之前,我才用的是如下方法,也能解决问题,只不过在imac上可以正常安装opencv,而mac pro上则失败了,后来在两台电脑上全部重新安装了中科大版本的brew,才最终解决,下面将原操作做个记录。

  • 首先,在使用brew list或brew doctor后,出现的是下面的问题

    Traceback (most recent call last):
    11: from /usr/local/Homebrew/Library/Homebrew/brew.rb:23:in `<main>'
    10: from /usr/local/Homebrew/Library/Homebrew/brew.rb:23:in `require_relative'
    9: from /usr/local/Homebrew/Library/Homebrew/global.rb:37:in `<top (required)>'
    8: from /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    7: from /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    6: from /usr/local/Homebrew/Library/Homebrew/os.rb:3:in `<top (required)>'
  • 然后,删除xcode工具,并重新安装

    sudo rm -rf /Library/Developer/CommandLineTools
    sudo xcode-select --install
    
  • 最后,更新brew即可

    brew upgrade
    

    当然,最好的方法是

    brew update-reset
    brew cleanup
    

    参考
    brew更新问题
    更换科大brew源

brew和zsh的小问题

brew

昨天开始学习opencv,一天时间把环境都没有搞好,主要是mac系统升级到big sur以后,brew出现了很多告警,而且跟新起来除了很多问题,包括使用【brew update-reset】重新安装xcode tools也不行,终于下定决心,重新安装brew,问题基本搞定,安装脚本如下

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

然后依次安装opencv和scipy库

brew doctor
brew install python(我已经安装好了)
brew install opencv
brew install scipy

查看opencv版本如下

opencv_version

ZSH

使用国内中科大的源,安装完brew后,每次打开terminal,会出现如下提示

[oh-my-zsh] Insecure completion-dependent directories detected:
drwxrwxrwx 7 hans admin 238 2 9 10:13 /usr/local/share/zsh
drwxrwxrwx 6 hans admin 204 10 1 2017 /usr/local/share/zsh/site-functions

大意是zsh认为目录权限有问题,解决方法如下

chmod 755 /usr/local/share/zsh
chmod 755 /usr/local/share/zsh/site-functions

参考
1 zsh问题
2 brew中科大源

systemctl命令简介

systemctl 提供了一组子命令来管理单个的 unit,其命令格式为:
systemctl [command] [unit]
command 主要有:
start:立刻启动后面接的 unit。
stop:立刻关闭后面接的 unit。
restart:立刻关闭后启动后面接的 unit,亦即执行 stop 再 start 的意思。
reload:不关闭 unit 的情况下,重新载入配置文件,让设置生效。
enable:设置下次开机时,后面接的 unit 会被启动。
disable:设置下次开机时,后面接的 unit 不会被启动。
status:目前后面接的这个 unit 的状态,会列出有没有正在执行、开机时是否启动等信息。
is-active:目前有没有正在运行中。
is-enable:开机时有没有默认要启用这个 unit。
kill :不要被 kill 这个名字吓着了,它其实是向运行 unit 的进程发送信号。
show:列出 unit 的配置。
mask:注销 unit,注销后你就无法启动这个 unit 了。
unmask:取消对 unit 的注销。

上周同事提出辞职

上周五,团队的一个同学找我,说有些事要聊聊。去往会议室的路上,我心里猜他是不是要离职。

果然,刚刚落座,他有些不好意思的说,我打算辞职,过了年就要走。

“是什么原因呢?”我问到。
“现在对家里照顾不到,2个小孩子都在小学,全靠我爱人,她太辛苦了.”同学说。

“打算去哪里,有下家吗?”我问他。
“BXX和HXX,他们在苏州都有基地。”同学犹豫了一下,还是说了。

“具体负责哪方面工作?”我比较好奇,毕竟一个是互联网公司,一个是安防领域的,似乎和我们现在的行业有点距离。
“是交通行业,华东地区的售前,其实来公司之前,他们就给了offer,你知道的,他们的HR一直没有放弃联系我,加上现在对小孩照顾不到,家里人意见非常大。”同学有些无奈的说。

我很理解他,中年人到了这个阶段,生活的重心基本都在孩子,两个小孩都上小学,仅仅辅导功课,就可以让家长崩溃,我自己深有体会。

”我能做些什么吗?比如和HR商量,让你把常驻地改回苏州,这样可以解决问题吗?“我征询他的意见。
”这个办法我也和HR沟通过,非常困难,而且五险一金也没法在苏州缴纳,对个人影响蛮大的。“他有点不相信。

”让我试试吧。“我建议,我印象山东有位负责售前的同学,他的常驻地就在南京,也许我抓紧和HR沟通,这个问题可以有办法。
”也行。“他有些勉强答道,”不过是不是要提前一个月提辞职,我担心到时候时间来不及。“

”没事,你今天和我说了,就算是提了辞职,如果HR那边搞不定,差几天问题不大,这事我能做主。“我给了他一个承诺。

因为这个,周末两天心情不太好,小李问了我两次,爸爸你为什么这么严肃?我和他说了此事,他也给不出什么建议,不过至少小李从小明白一个道理:工作后很多事情难如人意。

同学做事很认真,碰到问题会积极主动解决,也不畏学习新的知识和技能,加上工作经验丰富,是非常合适的员工。

不过,有些事情不能勉强,毕竟同学离职,还有一个原因,他说过去一年的成就感不强,未来短期内也看不到高速行业能有什么突破。

后面这个因素,对我是有触动的,毕竟选择什么方向是团队leader的责任,我把这个方向交给他,推进的如此艰难,如果还要劝他再等等,岂不是太自私?为什么要在一个看不到曙光的赛道上挣扎呢?就算2年后真的会爆发,谁又能保证我们不被淘汰呢?

2021,开始的征兆就不好。

明天去杭州

明天去杭州,18年经手的一个项目,政府进行审计,要求项目负责人必须到达现场。

回想2018年,Alick经常会来杭州视察项目组,他回去时,我会送他到楼下,有时候也会陪他抽烟。

时间很快。

curl 和 mbstring,更新CentOs7,解决mysql.sock丢失问题

对于Ubuntu.20:

需要安装对应php版本的curl和mbstring

apt-get install php8.0-curl
apt-get install php8.0-mbstring

修改fpm目录下的php.inn文件
Screen Shot 2021-01-25 at 6.15.20 PM

重启php服务

systemctl restart php8.0-fpm.service

对于Centos7:

curl是内建的,所以只用安装mbstring

yum install php-mbstring

更新Centos

首先检查CentOS可用更新,显示应用和核心系统升级

yum check-update

然后清理以前的软件包,并重启

yum clean all
# reboot

开始升级

yum update

查看linux版本

cat /etc/redhat-release

恢复mysql.sock文件

这时发现浏览器里显示数据库无法连接,repair页面也打不开,进入mysql显示ERROR2002,同时mariadb的状态也变成inactive

#mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

使用find 命令也找不到mysql.sock
原因如下“连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock。如果套接字文件被删除了,本地客户就不能连接。这可能发生在你的系统运行一个cron任务删除了/tmp下的临时文件。

如果你因为丢失套接字文件而不能连接,你可以简单地通过重启服务器重新创建得到它。因为服务器在启动时重新创建它”

参考
mysql.sock问题
)

轻松解决PHP8没有mysql插件问题

修复好info.php问题后,安装wordpress,创建数据库,修改wp-config.php,都很顺利,但是最后一步,进入浏览器后,出现下面告警
‘Your PHP Installation Appears to Be Missing the MySQL Extension Which Is Required by WordPress’

下面的网站虽然有一定参考意义,但是帮不了我。
方案1 How to Fix

还是靠自力更生,当然也参考方案2,通过非常简单的办法解决了问题。
直接sudo安装php8.0-mysqlnd即可

root@MDaliyun / # apt-get install php8.0-mysqlnd

Screen Shot 2021-01-24 at 11.16.37 PM

然后重新启动服务器

root@MDaliyun / # reboot

方案2 How To Fix "Your PHP Installation Appears To Be Missing The MySQL Extension Which Is Required By WordPress"