1、安装git
yum install git -y
2、安装python编译依赖
yum -y install gcc make patch gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel
3、下载的是一个叫pyenv-installer的shell脚本
Pyenv官网 https://github.com/pyenv/pyenv
Pyenv-installer插件 https://github.com/pyenv/pyenv-installer
curl -x 192.168.1.6:7890 -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
4、如果curl出现 curl:(35) SSL connect error 是nss版本过低,需要更新
# yum仓库 [updates] name=CentOS-Updates baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/ gpgcheck=0 yum update nss
5、~/.bash_profile中追加
$ vim ~/.bash_profile export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init --path)" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" source ~/.bash_profile
这样当用户启动的时候,会执行用户的.bash_profile中的脚本,就会启动pyenv
安装好的pyenv就在~/.pyenv目录中
python版本及path路径
python -V echo $PATH
pyenv命令
pyenv help install
列出所有可用版本
pyenv install --list
在线安装指定版本
pyenv install 3.8.6 pyenv versions
使用缓存方式安装
在~/.pyenv目录下,新建cache目录,放入下载好的待安装版本文件
$ mkdir ~/.pyenv/cache $ cd ~/.pyenv/cache $ wget -e "https_proxy=http://192.168.1.6:7890" https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tar.xz $ pyenv install 3.8.6
version显示当前的python版本
versions显示所有可用的版本和当前版本
global全局设置
pyenv global 3.8.6 pyenv versions
可以看到所有受pyenv控制的窗口中都是3.5.3的版本了
这里用global是作用于非root用户python用户上,如果是root用户安装,不要使用global,否则影响太大,比如这里使用的centos6.5就是python2.6,使用了global就成了3.x,会带来很不好的影响
影响只作用于当前会话
pyenv shell 3.8.6 pyenv versions
使用pyenv local设置从当前工作目录开始向下递归都继承这个设置
pyenv local 3.8.6 pyenv versions
为什么要使用虚拟环境?
因为Python环境都是一个公共空间,如果多个项目使用不同Python版本开发,或者使用不同的Python版本部署运行,或者使用同样的版本开发的不同项目使用了不同版本的库等等这些问题会带来冲突的发生,最好的解决办法就是每一个项目独立运行在自己的"独立小环境"中。使用插件,在plugins/pyenv-virtualenv中
$ pyenv virtualenv 3.8.6 wuyanzu $ mkdir /pyproject/xiecheng -p $ cd /pyproject/xiecheng $ pyenv local wuyanzu # wuyanzu是一个容器名,是上面用virtualenv创建的 # 导出包 $ pip freeze > requirement
取消local设置
pyenv local --unset
由于centos自带的是2.6所以需要重新安装
$ python --version Python 2.6.6
安装依赖
yum -y install zlib zlib-devel yum -y install bzip2 bzip2-devel yum -y install ncurses ncurses-devel yum -y install readline readline-devel yum -y install openssl openssl-devel yum -y install openssl-static yum -y install xz lzma xz-devel yum -y install sqlite sqlite-devel yum -y install gdbm gdbm-devel yum -y install tk tk-devel yum install gcc
$ wget -e "https_proxy=http://192.168.1.6:7890" https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tgz $ tar zxf Python-3.8.6.tgz -C /tmp $ cd /tmp/Python-3.8.6 $ ./configure --prefix=/usr/local --enable-optimizations # 根据你的真实CPU核数 $ make -j 6 $ make install $ ln -s /usr/local/bin/python3.8 /usr/bin/python3 $ ln -s /usr/local/bin/pip3.8 /usr/bin/pip3
$ mkdir ~/.pip $ vim ~/.pip/pip.conf [global] trusted-host=pypi.doubanio.com index-url=https://pypi.doubanio.com/simple/
1、确保linux服务器已经安装好虚拟环境,并且虚拟环境已经python的相关环境(连接服务器也可以进行环境配置)。
1、进入pycharm的Tools栏
2、选择文件传输协议为SFTP,输入服务器的IP、端口、密码进行连接,不出意外的情况下应该是能够连接成功的。
3、选择本地和服务器的文件路径
1、file-setings-Priject interpretor-SSH输入服务的IP和用户名
文件用于声明 Python 依赖,以后要用的包
$ pip3 freeze > requirements.txt # 生成requirements.txt $ pip install -r requirements.txt # 从requirements.txt安装依赖
直接编辑
prettytable requests aiohttp aiofiles scipy pillow numpy
setup.py 这个文件是用来管理模块的,你可以将你的项目打包为模块上传到 pypi 中,也同样能将项目作为模块放入python 的系统加载模块目录下。
requiremens.txt 这个文件是列举你这个项目引用了哪些非本项目的依赖的,除此之外,没有其他作用。
因此,可以看出这两个项目其实并没有冲突关系,而且有很大共存的必要。
假如你的项目需要保存为系统模块,或者可安装为系统命令的 setup.py 就必不可少了
假如你的项目是可以直接运行的,那么 requirements.txt 也是必不可少。
如果你两种功能都需要,那么就两个文件都不能少。
有这两种功能都需要的么?
必须有啊,而且还很多,例如 Flask,他就支持两种方式:
以系统命令的方式启动,在 Flask 0.11.1 中新加入了一个 Click 包,他可以让你 setup 之后以命令的方式运行
直接运行,传统的 Flask 启动方式一般就是 app.run() 或者 python manage.py runserver