python 问题记录

问题1

ImportError: Something is wrong with the numpy installation. While importing we detected an older version of numpy in [‘/home/ubuntu/.local/lib/python3.5/site-packages/numpy’]. One method of fixing this is to repeatedly uninstall numpy until none is found, then reinstall this version
解决方法:翻译了照做即可,“ImportError:numpy安装有问题。 导入时我们在[‘/home/ubuntu/.local/lib/python3.5/site-packages/numpy’]中检测到了旧版本的numpy。 解决此问题的一种方法是重复卸载numpy,直到找不到,然后重新安装此版本”,pip3 uninstall 多次直到提示No modules 再安装。

问题2

ValueError: not enough values to unpack (expected 2, got 1
解决方法:百度上多半提到是因为“出现错误的原因是读取的文件有问题,读取的文件内不能包含换行符。将txt文件的内容中所有的换行去掉即可!”实际项目中是由于使用split取文件名进行切割,文件名不符合要求无法识别。

问题3

Python.h:没有那个文件或目录,错误的方法
解决方法:缺少静态库,安装python-dev,这是Python的头文件和静态库
sudo apt-get install python-dev

问题4

Python打印含有中文的List时出现乱码,形如“\xe4\xb8…” 等等的编码
解决方法:

  • 使用 decode(‘string_escape’) 来达成
>>> a = ['中文', 'ab']
>>> print a
['\xe4\xb8\xad\xe6\x96\x87', 'ab']
>>> print str(a).decode('string_escape')
['中文', 'ab']
>>> a = ['中文', 'ab']
>>> import uniout
>>> print a
['中文', 'ab']
  • 直接取用 _uniout
    从上述 uniout Project 直接取用 _uniout.py
>>> a = ['中文', 'ab']
>>> import _uniout
>>> print _uniout.unescape(str(a), 'utf8')
['中文', 'ab']

来源:旅行箱和梦想-博客园

问题5

Python给字符串前补0
解决方法:python中有一个zfill方法用来给字符串前面补0,非常有用

n ="123"
s =n.zfill(5)
asserts =="00123"

#zfill()也可以给负数补0
n ="-123"
s =n.zfill(5)
asserts =="-0123"

#对于纯数字,我们也可以通过格式化的方式来补0
n =123
s ="%05d"%n
asserts =="00123"
问题6

python 从外部获取传入的参数
解决方法:有时候我们在执行python程序的时需要接收到外部传入的参数,python的 sys.argv[]就能实现。

import sys  #引入模块
str = sys.argv[1]
print str
问题7

pip: no module named _internal(pip损坏)
解决方法:
For pip2.7
you can at first curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
then python2.7 get-pip.py --force-reinstall to reinstall pip

杂项
  • 取时间戳 str(time.time())
  • 中文注释报错 #-*-coding:utf-8-*-
  • 字符大小写转换 str.lower()
  • 取a和b之间的随机整数 random.randint(a,b)
  • pip安装tensorflow后运行有warning信息
import os
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "2" 

TensorFlow的日志级别分为以下三种:
TF_CPP_MIN_LOG_LEVEL = 1 //默认设置,为显示所有信息
TF_CPP_MIN_LOG_LEVEL = 2 //只显示error和warining信息
TF_CPP_MIN_LOG_LEVEL = 3 //只显示error信息

问题8

PHP取json头部有乱码锘縶 导致json无法解析
解决方法:
BOM问题,如果是文件,改为utf-8无BOM格式。
如果不是,去掉前面多的两个字符,PHP代码如下:

function removeBOM($str = ‘‘) 
{ 
   if (substr($str, 0,3) == pack("CCC",0xef,0xbb,0xbf)) { 
       $str = substr($str, 3); 
   } 
   return $str; 
} 
点赞