20170315开始,学习LINUX与PYTHON。荷兰人Guido van Rossum1989 创立了PYTHON语言,1991年初发行了第一个版本。
1、安装PYENV
PYTHON开发环境PYENV,是一个多࣍版本管理工具,安装之前,确保已经安装git
yum install git -y
安装其他依赖
# yum -y install gcc make patch gdbm-devel openssl-devel sqlite-devel readlinedevel zlib-devel bzip2-devel
创建用户
# useradd python
使用python登录,然后开始安装,一般一个项目都是以一般用户开发的,非ROOT用户。
从官网下载PYENV
curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
在python用户的~/.bash_profile追加:
VIM打开~/.bash_profile,WQ保存退出。
export PYENV_ROOT=/home/python/.pyenv
export PATH="/home/python/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
激活PYENV,重新登录PYTHON账户
2、python多版本安装
查看pyenv命令
[python@centos6 ~]$ pyenv
pyenv 1.2.2
Usage: pyenv <command> [<args>]
Some useful pyenv commands are:
commands List all available pyenv commands
local Set or show the local application-specific Python version
global Set or show the global Python version
shell Set or show the shell-specific Python version
install Install a Python version using python-build
uninstall Uninstall a specific Python version
rehash Rehash pyenv shims (run this after installing executables)
version Show the current Python version and its origin
versions List all Python versions available to pyenv
which Display the full path to an executable
whence List all Python versions that contain the given executable
See `pyenv help <command>' for information on a specific command.
查看 pyenv help install安装帮助
[python@centos6 ~]$ pyenv help install
Usage: pyenv install [-f] [-kvp] <version>
pyenv install [-f] [-kvp] <definition-file>
pyenv install -l|--list
pyenv install --version
-l/--list List all available versions
-f/--force Install even if the version appears to be installed already
-s/--skip-existing Skip if the version appears to be installed already
python-build options:
-k/--keep Keep source tree in $PYENV_BUILD_ROOT after installation
(defaults to $PYENV_ROOT/sources)
-p/--patch Apply a patch from stdin before building
-v/--verbose Verbose mode: print compilation status to stdout
--version Show version of python-build
-g/--debug Build a debug version
安装各个版本PYTHON,联官网下载安装,-v安装过程可以看到,安装过程较慢。
pyenv install 3.5.5 -v
pyenv install 3.6.1 -v
另类安装,提前下好包至/home/python/.pyenv/cache下,选择阿里云等。在当前目录输入下面命令或拷贝下好的包至cache下。
wget http://mirrors.sohu.com/python/3.5.5/Python-3.5.5.tar.xz
wget http://mirrors.sohu.com/python/3.5.5/Python-3.5.5.tgz
wget http://mirrors.sohu.com/python/3.5.5/Python-3.5.5rc1.tar.xz
已下载好的,不下载了。
3、配置PYENV至所做项目
pyen之global、shell、local配置.与登录用户名有关.
现版本为2.6.6
python@centos6 cache]$ python -V
Python 2.6.6
设置全局3.5.5版本,不能乱用.
[python@centos6 cache]$ pyenv global 3.5.5
[python@centos6 cache]$ python -V
Python 3.5.5
[python@centos6 cache]$ pyenv version
3.5.5 (set by /home/python/.pyenv/version)
切换至system
[python@centos6 cache]$ pyenv global system
当前shell会话环境,只限于当前终端窗口,换一个窗口成另外的python环境。
[python@centos6 cache]$ pyenv shell 3.5.5
[python@centos6 cache]$ pyenv version
3.5.5 (set by PYENV_VERSION environment variable)
[python@centos6 cache]$ pyenv versions
system
* 3.5.5 (set by PYENV_VERSION environment variable)
3.5.5/envs/sqq355
3.6.1
3.6.1/envs/sqq361
sqq355
sqq361
local用法,只用于所对应的文件夹(包括下面的子目录,兄弟目录不管),退出目录所对应的环境不一样了,用处多
[python@centos6 pro]$ ls
cmdd
[python@centos6 pro]$ cd ..
[python@centos6 wangqq]$ pyenv version
3.6.1 (set by /home/python/wangqq/.python-version)
[python@centos6 wangqq]$ cd pro
[python@centos6 pro]$ pyenv version
3.5.5 (set by /home/python/wangqq/pro/.python-version)
[python@centos6 pro]$ cd cmdd
[python@centos6 cmdd]$ pyenv versions
system
3.5.5
3.5.5/envs/sqq355
* 3.6.1 (set by /home/python/wangqq/pro/cmdd/.python-version)
3.6.1/envs/sqq361
sqq355
sqq361
[python@centos6 cmdd]$ pyenv local system
[python@centos6 cmdd]$ pyenv versions
* system (set by /home/python/wangqq/pro/cmdd/.python-version)
3.5.5
3.5.5/envs/sqq355
3.6.1
3.6.1/envs/sqq361
sqq355
sqq361
但面临的可能多人用同一个环境(如3.5.5),所安装的包的版本可能不一样,装至公共环境了,还是混乱,解决办法:虚拟环境,包管理独立,相当于自己定制的PYTHON版本。
[python@centos6 cmdd]$ pyenv virtualenv 3.5.5 qq355
Requirement already satisfied: setuptools in /home/python/.pyenv/versions/3.5.5/envs/qq355/lib/python3.5/site-packages
Requirement already satisfied: pip in /home/python/.pyenv/versions/3.5.5/envs/qq355/lib/python3.5/site-packages
[python@centos6 cmdd]$ pyenv versions
* system (set by /home/python/wangqq/pro/cmdd/.python-version)
3.5.5
3.5.5/envs/qq355
3.5.5/envs/sqq355
3.6.1
3.6.1/envs/sqq361
qq355
sqq355
sqq361
[python@centos6 cmdd]$ pyenv local qq355
(qq355) [python@centos6 cmdd]$ pyenv versons
pyenv: no such command `versons'
(qq355) [python@centos6 cmdd]$ pyenv versions
system
3.5.5
3.5.5/envs/qq355
3.5.5/envs/sqq355
3.6.1
3.6.1/envs/sqq361
* qq355 (set by /home/python/wangqq/pro/cmdd/.python-version)
sqq355
sqq361
(qq355) [python@centos6 cmdd]$
提示符显示qq355,为3.5.5的环境。
4、pip通用配置
注意安装路径,虚拟环境下安装至ENV,公共的安装至python公共环境下。
根目录下:pip/pip.conf文件下编辑好以下内容,去国内镜像下载,速度快点。
安装redis包,安装至当前目录所对应的虚拟环境下或公共环境。
pip install redis
在那个目录安装至那个目录,换目录不能用。
$ pip install ipython
exit退出
安装jupyter
pip install jupyter
jupyter notebook --ip=0.0.0.0,可以浏览器访问,上不了网一般是防火墙的问题,执行第4点。 在浏览 输入IP/
问题:jupyter访问不了,或者linux上运行的网站访问不了。
解决思路:
1、linux上执行sudo ifconfig,查看本机ip地址是多少,比如是:172.16.100.12 ,然后使用netstat -tnlp 查看端口是否已经在listen状态。
2、在另外一台机器上使用命令 ping 172.16.100.12,如果不通的话说明本机连接到linux主机网络配置有问题,重新设置虚拟机网络配置 。
3、如果能ping通,说明网络正常,使用telent 172.16.100.12 8888 看端口是否连通的,如果不通清空防火墙规则。如果没有telent命令,请查看:https://jingyan.baidu.com/article/ae97a646b22fb6bbfd461d19.html
4、在Linux上执行 sudo iptables -F 命令
5、继续执行: centos6:service iptables stop?| centos7:systemctl disable firewalld
6、如果仍然无法访问,查看运行的进程是否监听 在0.0.0.0,比如: jupyter notebook --ip=0.0.0.0
编辑test.PY可以编辑,同步至LINEX下.
pip freeze >requirement
冻结当前目录下的包,
pip install -r requirement
把冻结的包安装至所在目录下。