Python on CentOS
python 2.6.6 安装 pip
yum install -y python-pip
或者手动安装 pip, setuptools
python 升级
python2.6 升级到 python3.6
先确保 yum 可用, 且在 root 用户下运行 update_to_python3.sh 脚本
python2.6 升级到 python2.7, 需要安装 pip, setuptools. 而 python3.6 已经自带了.
(1) 下载压缩包 Python-3.6.1.tgz
(2) 安装 gcc
yum install gcc
(3) 安装 zlib
yum -y install zlib*
(4) 修改 yum 源 (手动去执行)
vi /usr/bin/yum
将 #!/usr/bin/python 修改为 #!/usr/bin/python2.6
(5) 设置 pip 源 (先需要手动创建目录)(该步骤手动去执行)
- mkdir ~/.pip
- vi ~/.pip/pip.conf
python package 相对导入, 绝对导入
(1) python 工程运行在 Windows 环境, 借助 pycharm IDE, 能自动组织导入
(2) 运行在 CentOS 中, 很容易出现模块找不到情况.
solution:
glance 为顶层包, 包括 operation, util 两个子包. glance 包内全部采用相对导入.
程序主入口 mian.py 要放在与 glance 同一级目录. mian.py 中只能采用绝对导入.
则不要再次加入, sys.path.append(os.path.abspath('../../glance'))
- from glance.opencv.star_detector import StarFeatureDetector
- from . import star_detector
如果要执行 main.py, 则在 main.py 中不能包含相对导入.
python issue
python3 报错 ssl
solution: 参考 update_to_python3_with_ssl.sh
在编译之前增加:
- yum -y install openssl-devel
- ./configure --prefix=/usr/local/python3/ --with-ssl
忽略抛出异常
- import warnings
- warnings.filterwarnings("ignore", category=DeprecationWarning)
lambda 与列表推导式
- x = []
- for sentence in text:
- out1 = text_to_word_sequence(sentence)
- out2 = one_hot(str(out1), 5)
- x.append(out2)
求最大值
列表推导式更简洁,[len(element) for element in x]
max_len = max([len(element) for element in x])
lambda 定义一个匿名函数, 在 map 方法中执行
max_len_2 = max(map(lambda element: len(element), x))
来源: http://www.bubuko.com/infodetail-2780620.html