Python MySQLdb 导入libmysqlclient报错

摘要

flask开发相关功能,在本地测试没有问题,但是放到线上环境却报错 ImportError: libmysqlclient.so.16: cannot open shared object file: No such file or directory
检查了下发现在 /usr/lib64/mysql 下面存在libmysqlclient.so.18文件(uanme -a 确认是64位系统)


解决过程

发现问题,不是自己遇到的也没有解决办法,那就网上查呗,发现大家的思路:

  • copy /usr/lib64/mysql/libmysqlcient.so.18/usr/lib64/libmysqlclient.so.16
  • /usr/lib64/下面建立libmysqlclient.so.16的软连接
  • /etc/ld.so.conf.d/mysql-x86_64.conf里面添加 /usr/lib64/mysql

等等思路都尝试之后发现还是还是没有解决。

继续思考:

环境中明明有libmysqlclient.so.18 为何要去找libmysqlclient.so.16,

那就先考虑libmysqlclient.so.18是从和而来。 在报错中提到了_mysql.so , locate 找到_mysql.so 发现是在/root/.pyenv/versions/flask2/lib/python2.7/site-packages/_mysql.so,好项目有什么问题,找mysql.so 发现如下:

阅读更多

SVN relocate svn切换地址

摘要

今天这里给大家介绍一个SVN的小技巧 svn relocate
这个小技巧的作用是当SVN的地址发生变更的时候,很方便巧妙的在现存仓库的基础上变更SVN URL地址


SVN.jpg


关于SVN迁移备份

很早之前写过一遍关于Linux下SVN安装备份迁移的文章,可以点击如下链接预览

SVN - Linux下SVN安装备份迁移方案:
http://www.jianshu.com/p/34b1eba3bd8b


relocate

假设SVN服务用主机A迁移到了主机B,对应的服务地址也发生了变化,对于用户而言,肯能想到最直接的最笨的方法就是重新svn checkout一份

阅读更多

如何在Linux上搭建一个Git中央仓库

git.jpg

原作者:温叶


前言:本教程只面向那些个人开发者,想要自己在linux上搭建一个git中央仓库用来上传发布自己的项目。但是对于团队来说可能有更高的要求,可以使用gitlab搭建一个可视化的类似github的版本管理系统测试环境我使用的linux版本是Centos7,如果大家使用的是其他发行版本,步骤也都是一样的

安装Git

Centos上使用的是yum的安装方式

yum install -y git

创建一个Git用户来运行Git服务

1.创建git用户

adduser git

阅读更多

Centos6.6升级docker到1.9

摘要

为了加快docker镜像的拉取和构建,采用DaoCloud等docker加速器来加快镜像的拉取。
但是像DaoCloud等需要docker版本1.9+

Docker.jpg


Centos6.6下采用最新epel的YUM源可以安装到docker 1.7版本

1
2
3
4
5
6
## centos6下安装epel源
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
sudo rpm -Uvh epel-release-6*.rpm
## centos6安装docker1.7
yum install docker-io

阅读更多

docker配置daocloud加速器

摘要

国内环境的问题,访问docker官网的镜像源超级慢。现在各种翻墙也在封杀中。如可以通过配置加速器来加班docker镜像的拉取、build等过程,国内知名的有DaoCloud阿里云等都有提供加速器

Docker.jpg


这里采用DaoCloud的加速器配置加速

登录DaoCloud官网注册账号之后进入到 加速器页面,会得到如下命令

1
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://eddfa622.m.daocloud.io
Linux上面用root执行该命令
1
2
root@pts/0 $ curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://eddfa622.m.daocloud.io
please upgrade your docker to v1.9 or later
docker version 检查版本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
root@pts/0 # docker version
Client:
Version: 1.7.1
API version: 1.21
Go version: go1.4.3
Git commit: a34a1d5
Built: Fri Nov 20 17:56:04 UTC 2015
OS/Arch: linux/amd64
Server:
Version: 1.7.1
API version: 1.21
Go version: go1.4.3
Git commit: a34a1d5
Built: Fri Nov 20 17:56:04 UTC 2015
OS/Arch: linux/amd64

阅读更多

Linux crontab中不能执行Python脚本

欢迎访问个人博客

>>摘要

在Linux下的crontab定时执行shell脚本和Python的时候存在一定的问题,导致某些系统变量取不到,以至于定时计划不能很好的执行。究其原因是因为crontab不能取到全部的环境变量


>>依赖环境

1
2
3
4
5
6
7
8
[root@i-vowirco9 bin]# cat /etc/redhat-release
CentOS release 6.8 (Final)
[root@i-vowirco9 bin]# python -V
Python 2.6.6
[root@i-vowirco9 bin]# pip -V
pip 9.0.1 from /usr/lib/python2.6/site-packages/pip-9.0.1-py2.6.egg (python 2.6)

>>验证crontab取到的环境变量

全新主机上面编写如下shell脚本测试crontab服务可获取到的环境变量

阅读更多

Python 导入matplotlib报错

摘要

今天在安装导致matplotlib包的时候报错如下,提示如下报错

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
>>> import matplotlib.pyplot as plt
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.7/site-packages/matplotlib/pyplot.py", line 115, in <module>
_backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
File "/usr/lib64/python2.7/site-packages/matplotlib/backends/__init__.py", line 32, in pylab_setup
globals(),locals(),[backend_name],0)
File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_tkagg.py", line 6, in <module>
from six.moves import tkinter as Tk
File "/usr/lib/python2.7/site-packages/six.py", line 203, in load_module
mod = mod._resolve()
File "/usr/lib/python2.7/site-packages/six.py", line 115, in _resolve
return _import_module(self.mod)
File "/usr/lib/python2.7/site-packages/six.py", line 82, in _import_module
__import__(name)
ImportError: No module named Tkinter
>>> from Tkinter import *
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named Tkinter

阅读更多

Python告警总结

Issue A

=== pip list 告警 ===

1
2
3
4
root@pts/3 $ pip list
DEPRECATION: The default format will switch to columns in the future.
You can use --format=(legacy|columns) (or define a format=(legacy|columns) in
your pip.conf under the [list] section) to disable this warning.

Fix A

1
2
3
root@pts/3 $ cat /root/.pip/pip.conf
[list]
format=columns

阅读更多

Centos6下Python2.6升级到Python2.7

摘要

Centos6系统默认安装的Python版本是2.6,但是目前好多程序支持2.7及以上版本,故这里介绍如何从2.6升级到2.7,以及过程中遇到的问题


环境

1
2
3
4
5
[root@i-cnh16bcn opt]# cat /etc/redhat-release
CentOS release 6.8 (Final)
[root@i-cnh16bcn opt]# python -V
Python 2.6.6

阅读更多

python解析URL中含有特殊符号的地址

摘要

今天在用curl调用一个solr地址查询数据的时候报错,发现是因为URL地址中含有[ 中括号 导致的,既然shell的curl命令不行,想着Python的urllib包可以解析URL地址,那就尝试这个

curl 执行报错

错误的情况:

1
2
root@pts/3 $ curl "http://192.168.xxx.xxx:8983/solr/core1_shard2_replica1/select?q=*:*&fq=sex:1&fq=activeTime_tdt:[NOW-20MINUTE TO NOW]&wt=json&indent=true"
curl: (3) [globbing] error: bad range specification after pos 96

阅读更多