json.loads(json, strict=False)#关掉strict即可
Json的严格写法应该是: {"title": "\u6587\u7ae0\u6807\u9898\n\u6362\u884c"}
但是有的时候由于不严格: {"你在哪呢": "kiral"}
load时会造成错误: JSONDecodeError: invalid control character
解决方案: json.loads(json, strict=False)#关掉strict即可
最近在做一些视频分类的任务,按照论文中的模型结果去做实验,感觉有些技术上的小进步,心里是安稳些的。 在代码上还是要继续改进,写出更flexible的代码,就像收拾屋子,乱了就随时收拾,一直保持整洁,不要积累到最后才搞大扫除,嗯嗯,继续加油,稳住!
可能的原因1:安装的不是对应python版本的库,下载的库名中cp27代表python2.7,其它同理。 可能的原因2:这个是我遇到的情况(下载的是对应版本的库,然后仍然提示不支持当前平台) 我下载到的numpy库文件名: 使用pip安装(在命令行中): 报错:*** is not a supported wheel on this platform,通过在stackoverflow上的一个帖子成功解决问题。 方法:在shell中输入import pip; print(pip.pep425tags.get_supported())可以获取到pip支持的文件名还有版本,我这里如下: >>import pip; print(pip.pep425tags.get_supported()) [('cp27', 'none', 'win32'), ('py2', 'none', 'win32'), ('cp27', 'none', 'any'), ('cp2', 'none', 'any'), ('cp26', 'none', 'any'), ('cp25', 'none', 'any'), ('cp24', 'none', 'any'), ('cp23', 'none', 'any'), ('cp22', 'none', 'any'), ('cp21', 'none', 'any'), ('cp20', 'none', 'any'), ('py27', 'none', 'any'), ('py2', 'none', 'any'), ('py26', 'none', 'any'), ('py25', 'none', 'any'), ('py24', 'none', 'any'), ('py23', 'none', 'any'), ('py22', 'none', 'any'), ('py21', 'none', 'any'), ('py20', 'none', 'any')] 通过这里可以发现上面下载的文件名格式是不支持的,修改为:numpy-1.10.4+mkl-cp27-none-win32.whl即可成功安装。 其它的库也同理可以成功安装,不过也请注意库的依赖。
(参考帖子网址:http://stackoverflow.com/questions/28107123/cannot-install-numpy-from-wheel-format?rq=1) (python库下载地址(库很丰富,下载速度也很快):http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy)
1、python里import tensorflow时报 “ImportError: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by /usr/local/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so)”
glibc 升级 GLIBC 升级 安装包,自己编译 由于centos6.5以下版本glibc最高为2.12,如果想要升级,必须自己下载源码,编译升级,但是从官网上下载的安装包,需要一些其他的关联包,安装麻烦,且不利于其他机器的部署。 rpm安装 从网上下载glibc-2.15.rpm,以及其他相关的glib安装包, glibc-common-2.15-60.el6.x86_64.rpm glibc-devel-2.15-60.el6.x86_64.rpm glibc-2.15-60.el6.x86_64.rpm glibc-headers-2.17-60.el6.x86_64.rpm 这个包能找到就下,找不到就不用安装了。 [下载好放到了nb01-sys-gpu-kongming13.nb01.baidu.com:/root/softwares/glibc217.tar]
nscd-2.12-1.192.el6.x86_64.rpm 在使用rpm安装时,需要忽略包的关联性,否则无法正常安装。 rpm -Uvh --nodeps *2.17-55.el6.x86_64.rpm --force 安装好后,ldconfig 检查ll /lib64/libc.* 此时可以看到glibc.so.6 已经指向了2.17.so 注意 在安装glibc时,一定注意备份,因为一旦出错,整个系统就会挂掉。
libstdc++.so.6 ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.19' not found Kongming 机器: export LD_PRELOAD=/home/opt/gcc-4.8.2.bpkg-r2/gcc-4.8.2.bpkg-r2/lib64/libstdc++.so.6
2. python里import tensorflow时报 “ImportError: /usr/local/python27/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so: undefined symbol: PyUnicodeUCS4_FromString” 如果自己单独升级了python,或者有多个版本的python时,便有可能出现此问题. 问题表象为:报错:undefined symbol: PyUnicodeUCS2_AsUTF8String或者undefined symbol: PyUnicodeUCS4_AsUTF8String. 根本原因时python和某个你用的库编译时指定的UCS编码方式不对. 编译python时,可以通过指定--enable-unicode[=ucs[24]]来选择使用UCS2或者UCS4. 如果你的错误是undefined symbol: PyUnicodeUCS2_AsUTF8String,说明你的python编译时使用的是UCS4,反之依然. 解决方案两个:1,重新编译python,2,重新编译库. 选择一般是重新编译库. 我这重新编译python,因为报错是PyUnicodeUCS4_FromString,说明tensorflow是用UCS4编译的,而python是UCS2编译的: 重新编译时设置unicode为ucs4 ./configure --prefix=/usr/local/python27 --enable-unicode=ucs4 python2.7.11默认是使用UCS2.
3. ImportError: No module named Tkinter https://www.douban.com/note/524197380/
在linux安装了多版本python时(例如python2.6和2.7),pip安装的包不一定是用户想要的位置,此时可以用 -t 选项来指定位置. 例如目标位置是/usr/local/lib/python2.7/site-packages/ ,要安装xlrd 这个包,则: $ pip install -t /usr/local/lib/python2.7/site-packages/ xlrd
权限不够则在命令前加sudo
最近写的python脚本,在用print输出的时候,都有一个很讨厌的问题,就是print的输出被延迟了。
根源是python默认启用了stdout缓冲,解决的办法有两种: 一种办法是每次print后,都调用stdout flush(),把缓冲区打印出来,这个办法比较麻烦,要重载stdout,不推荐。
最简单的方法是用命令行参数-u启动python,禁用stdout缓冲
比如脚本是build-native.py,运行 python -u build-native.py就不会出现print延迟问题了
问题:在make pycaffe时,可能会出现: error: make: ***No rule to make target 'include/layers/python_layer.hpp, needed by 'python/caffe/_caffe.so'. Stop. 这是由于caffe的版本不同导致的。 解决方法: 在 include/caffe/layers/文件夹中的python_layer.hpp复制到include/caffe/文件夹下 再次make pycaffe,编译成功
在其他地方打开python,使之可以import caffe: 添加环境变量: cd ~ vim /.bashrc 将export PYTHONPATH=/home/nielsen/caffe-master/python:$PYTHONPATH添加到文件中 source ~/.bashrc 使之生效
Liunx 运行用 Intel MKL 库文件的程序出错 “error while loading shared libraries libmkl_intel.so” 解决办法2012-06-05 18:19 本站整理 浏览(9) 编译例子: gcc -o foo foo.c -I/opt/intel/mkl/10.1.0.015/include -L/opt/intel/mkl/10.1.0.015/lib/32 -lmkl_intel ... <other MKL libs> 错误提示: ./foo: error while loading shared libraries libmkl_intel.so: cannot open shared object file No such file or directory 解决办法:在Liunx 环境变量中加入Intel MKL 库文件路径 Intel 官网详解: Before using the Intel® MKL shared libraries, update the system variable LD_LIBRARY_PATH to include the libraries location. For example, if the Intel MKL libraries are in the /opt/intel/mkl/10.1.0.015/lib/32 directory then the following command line can be used (assuming a bash shell): export LD_LIBRARY_PATH=/opt/intel/mkl/lib/ia32:$LD_LIBRARY_PATH
1. 修改 C:\wamp\bin\apache\Apache2.2.17\conf \httpd.conf(实现更改默认网站路径,即将DocumentRoot和Directory定向到自己的默认目录:E:/phproot/) 2. 重启所有服务
假定矩形是用一对点表达的(minx, miny) (maxx, maxy),那么两个矩形 rect1{(minx1, miny1)(maxx1, maxy1)} rect2{(minx2, miny2)(maxx2, maxy2)} 相交的结果一定是个矩形,构成这个相交矩形rect{(minx, miny) (maxx, maxy)}的点对坐标是: minx = max(minx1, minx2) miny = max(miny1, miny2) maxx = min(maxx1, maxx2) maxy = min(maxy1, maxy2) 如果两个矩形不相交,那么计算得到的点对坐标必然满足: ( minx > maxx ) 或者 ( miny > maxy ) 判定是否相交,以及相交矩形是什么都可以用这个方法一体计算完成。 从这个算法的结果上,我们还可以简单的生成出下面的两个内容: ㈠ 相交矩形: (minx, miny) (maxx, maxy) ㈡ 面积: 面积的计算可以和判定一起进行 if ( minx>maxx ) return 0; if ( miny>maxy ) return 0; return (maxx-minx)*(maxy-miny)
|