由于每次打开linux虚拟机比较麻烦,于是尝试一下云服务器,在阿里云领取了一个月的试用服务器,这里记录一下新服务器从0配置成python开发环境的步骤,以便以后配置新服务器时有个参考。

免费领取一个月阿里云服务器试用

在下面网址可以免费领用一个月开发者入门级服务器,需先实名认证和填写调查问卷

https://free.aliyun.com/?spm=5176.10695662.1395584.1.28142c4f3IWndj

领取后进入控制台,可以看到领取的服务器信息,可以找到分配的公网IP,用自己的电脑ping一下看是否能ping通,能ping通的话就能够远程SSH登录了。

重置实例密码

领取后会默认给root用户一个密码,而这个密码我们并不知道,因此需要重置root用户密码,进入控制台,找到刚才领用的服务器,进入实例,勾选实例,点击重置实例密码。

重置后,通过Xshell工具远程登录服务器

创建python用户并赋予sudo权限

使用root用户登录,创建用户python(同时会默认创建名为python的用户组)

# useradd python

设置python密码

# passwd python

赋予sudo权限,编辑 /etc/sudoers 文件,找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名),使用命令 :w! 强制保存该文件

## Allow root to run any commands anywhere
root ALL=(ALL) ALL
python ALL=(ALL) ALL

现在可以切换至python使用sudo命令了

修改主机名

编辑 /etc/hostname 文件,将里面的默认主机名改成想要的主机名,如:Aliyun123,然后进入控制台重启服务器

安装python3和pip3

下载最新python3.8.3

https://www.python.org/downloads/source/

安装python3

# 解压
tar -zxf Python-3.8..tgz
# 安装依赖包
sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc libffi-devel
# 进入python目录
cd Python-3.8.
# 编译
./configure --prefix=/usr/local/python3
#安装
sudo make && make install

CentOS7默认安装了python2.x,并创建了对应的软连接python2,又创建了一个软连接python指向软连接python2

# ll /usr/bin

这里我们新建一个新的软连接python3指向我们安装的python3,将原来的软连接python重新指向我们创建的软连接python3

# ln -s /usr/local/python3/bin/python3. /usr/bin/python3
# rm python
# ln -s /usr/bin/python3 /usr/bin/python

这样输入python指向的就是python3,输入python2指向python2

pip安装同理

将python添加至环境变量PATH中:

$ echo 'export PATH=/usr/local/python3/bin:$PATH' >>~/.bashrc
$ source ~/.bashrc

修改yum配置

yum包管理是使用python2.x写的,将python2.x升级到python3.x后,yum命令会运行失败,因此需要修改yum配置,将yum、urlgrabber-ext-down两个文件内的的 #!/usr/bin/python 改为 #!/usr/bin/python2.7

# vi /usr/bin/yum
#!/usr/bin/python2.
# vi /usr/libexec/urlgrabber-ext-down
#!/usr/bin/python2.

安装虚拟开发环境

安装virtualenv

# pip install virtualenv

安装virtualenvwrapper

virtaulenvwrapper是virtualenv的扩展包,用于更方便管理虚拟环境,它可以做: - 将所有虚拟环境整合在一个目录下 - 管理(新增,删除,复制)虚拟环境 - 快速切换虚拟环境

# pip install virtualenvwrapper
// then make Bash load virtualenvwrapper automatically
# echo "source virtualenvwrapper.sh" >> ~/.bashrc
# source ~/.bashrc

virtaulenvwrapper的环境管理命令

# 创建虚拟环境并激活
mkvirtualenv venvname
# 或
mkvirtualenv --python=python3. venvname
# 激活环境
workon #列出虚拟环境列表
workon [venvname] #切换环境
# 退出环境
deactivate
# 删除环境
rmvirtualenv venv

安装Neovim

下载neovim

方式一:从yum源中下载,目前下载的版本是NVIM v0.3.0

# yum install neovim

方式二:从官网下载最新版 NVIM v0.5.0:https://github.com/neovim/neovim/releases

  1、下载

  2、赋予可执行权限:

chmod u+x nvim.appimage

  3、放入 /usr/bin 目录

sudo mv nvim.appimage /usr/bin/nvim

  4、直接输入nvim打开nvim界面,如果打开失败,报错‘AppImages require FUSE to run.’,则需要安装一下FUSE

# install from EPEL
sudo yum --enablerepo=epel -y install fuse-sshfs

  5、再重新打开nvim就不会报错了

配置nvim,打造python开发IDE

nvim的配置文件路径为~/.config/nvim/init.vim,没有该路径需要自行创建该路径,init.vim配置可以自行网上参考python开发相关配置,我参考的是 https://jdhao.github.io/2018/09/05/centos_nvim_install_use_guide/ 和 https://ncfun.gitee.io/2019/11/06/Neovim%E9%85%8D%E7%BD%AEPython%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/ ,这里我把自己虚拟机的nvim配置直接放过来,创建路径

mkdir -p ~/.config/nvim/

将init.vim文件复制进上面创建的路径

vim-plug 安装

  1. 安装 vim-plug 这个插件本身,运行以下命令安装:

    curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

    安装 vim-plug 以后,可能需要退出 Nvim 重新进入。

  1. 编辑 init.vim 文件,在该文件中加入 vim-plug 配置部分:

    call plug#begin('~/.local/share/nvim/plugged')
    ......
    call plug#end()

    所有其它插件的安装都要放在两个 call 命令之间

安装其他插件

打开nvim,命令行输入:PlugInstall,等待配置的插件下载完成

安装git

$ sudo yum install git-all

安装tmux

方式一:从yum源中下载,目前下载的版本是tmux 1.8

$ sudo yum install tmux

方式二:从官网下载最新版,目前最新版为3.1b:https://github.com/tmux/tmux/wiki/Installing ,下载后文件名为 tmux-3.1b.tar.gz

  1、Building dependencies,下载依赖库

    在tmux官网上进入 libevent 和 ncurses 网址下载,下载的文件如:ncurses.tar.gz 和 libevent-2.1.11-stable.tar.gz

  2、安装依赖库

    For libevent:

tar -zxf libevent-*.tar.gz
cd libevent-*/
./configure --prefix=$HOME/local --enable-shared
make && make install

    For ncurses:

tar -zxf ncurses-*.tar.gz
cd ncurses-*/
./configure --prefix=$HOME/local --with-shared --with-termlib --enable-pc-files --with-pkg-config-libdir=$HOME/local/lib/pkgconfig
make && make install

  3、安装tmux-3.1b.tar.gz

tar -zxf tmux-*.tar.gz
cd tmux-*/
PKG_CONFIG_PATH=$HOME/local/lib/pkgconfig ./configure --prefix=$HOME/local
make && make install

  tmux 安装后路径为~/local/bin/tmux  

  4、配置环境信息,使新安装的tmux生效

    运行命令

LD_LIBRARY_PATH=$HOME/local/lib $HOME/local/bin/tmux -V
MANPATH=$HOME/local/share/man man tmux

    编辑~/.bash_profile 文件

export PATH=$HOME/local/bin:$PATH
export LD_LIBRARY_PATH=$HOME/local/lib:$LD_LIBRARY_PATH
export MANPATH=$HOME/local/share/man:$MANPATH

配置tmux

使用配置文件 https://github.com/gpakosz/.tmux/blob/master/README.md

$ cd
$ git clone https://github.com/gpakosz/.tmux.git
$ ln -s -f .tmux/.tmux.conf
$ cp .tmux/.tmux.conf.local .

编辑~/.bashrc,添加快捷键和设置终端前面用户和主机的颜色,保存后运行:source ~/.bashrc

# alias
alias tnew='tmux new -s'
# color
if tty -s; then
set -o vi
PS1='\[\e]2;\u@\h:\w\a\e[33m\](\u@\h:\w)\$ \[\e[0m\]'
case "$TERM" in
vt100) stty erase ^H ;;
xterm) stty erase ^? ;;
esac
fi

在Xshell远程连接使用tmux时的问题

1、按照上面方法配置的.tmux.conf,进入tmux后,会出现光标错行的问题

解决:因为这个.tmux.conf可能是存在兼容性的问题,因此在xshell中展示的效果和官网有点出入,可能在mac中效果最好,因此删除~/.tmux.conf.local文件,再进入tmux时光标就不会错行了,但是可能会导致部分展示功能失效,但是正常tmux快捷键操作还是和~/.tmux.conf中设置的一样是可以正常使用的

rm ~/.tmux.conf.local

若还有乱码问题尝试把xshell终端中的使用的字符集改成utf-8

2、在tmux中打开nvim时,nvim配色与直接在终端打开nvim时不一致的问题

解决:设置~/.bashrc,加入语句

alias tmux="TERM=screen-256color tmux -2"

新阿里云服务器从0开始配置为python开发环境的更多相关文章

  1. 阿里云服务器Linux CentOS安装配置(四)yum安装tomcat

    阿里云服务器Linux CentOS安装配置(四)yum安装tomcat 1.yum -y install tomcat  执行命令后,会帮你把jdk也安装好 2.tomcat安装目录:/var/li ...

  2. 阿里云服务器Linux CentOS安装配置(九)shell编译、打包、部署

    阿里云服务器Linux CentOS安装配置(九)shell编译.打包.部署 1.查询当前目录以及子目录下所有的java文件,并显示查询结果 find . -name *.java -type f - ...

  3. 阿里云服务器Linux CentOS安装配置(八)nginx安装、配置、域名绑定

    阿里云服务器Linux CentOS安装配置(八)nginx安装.配置.域名绑定 1.安装nginx yum -y install nginx 2.启动nginx service nginx star ...

  4. 阿里云服务器Linux CentOS安装配置(六)resin多端口配置、安装、部署

    阿里云服务器Linux CentOS安装配置(六)resin多端口配置.安装.部署 1.下载resin包 http://125.39.66.162/files/2183000003E08525/cau ...

  5. 阿里云服务器Linux CentOS安装配置(五)jetty配置、部署

    阿里云服务器Linux CentOS安装配置(五)jetty配置.部署 1.官网下载jetty:wget http://repo1.maven.org/maven2/org/eclipse/jetty ...

  6. 阿里云服务器 ECS Ubuntu系统安装配置

    1. 登陆服务器 系统开通成功后手机会收到阿里云发来的短信,包含公网IP及root登录密码. WEB管理后台方式 可通过阿里云管理后台选择“连接管理终端…”进行登录 提示输入VNC密码 登录成功后显示 ...

  7. 阿里云服务器Linux CentOS安装配置(零)目录

    阿里云服务器Linux CentOS安装配置(零)目录 阿里云服务器Linux CentOS安装配置(一)购买阿里云服务器 阿里云服务器Linux CentOS安装配置(二)yum安装svn 阿里云服 ...

  8. 阿里云服务器Linux CentOS安装配置(七)域名解析

    阿里云服务器Linux CentOS安装配置(七)域名解析 1.购买域名 登录阿里云,左侧菜单点击[域名],然后[域名注册],完成域名购买.(一般首年45元) 2.添加域名解析 在域名列表里点击你的域 ...

  9. 阿里云服务器Linux CentOS安装配置(三)yum安装mysql

    阿里云服务器Linux CentOS安装配置(三)yum安装mysql 1.执行yum安装mysql命令:yum -y install mysql-server mysql-devel 2.启动mys ...

随机推荐

  1. JavaWeb网上图书商城完整项目--day02-12.激活功能各层实现

    1.我们来看程序的代码 数据库层: 1.通过激活码查找到对应的用户 2.设置用户的激活状态 2.业务层 1.通过数据库接口通过验证码得到对应的用户 2.判断当用户是否为空,如果没有通过激活码查找到对应 ...

  2. vue指令,实例成员,父子组件传参

    v-once指令 """ v-once:单独使用,限制的标签内容一旦赋值,便不可被动更改(如果是输入框,可以主动修改) """ <di ...

  3. vue全家桶(2.5)

    3.8.动态路由匹配和路由组件传参 3.8.1.动态路由匹配 动态路由意味着不固定,具有某种模式,我们希望通过某种匹配方式,把这种不固定的路由形势映射到同一个组件,例如:一个User组件,不同的ID表 ...

  4. js语法基础入门(2)

    2.变量 2.1.变量的声明 声明变量的时候没有赋值,默认输出undefined //通过var 声明一个变量 var user: //默认输出undefined 可以同时声明多个变量 var use ...

  5. 【Flutter实战】自定义滚动条

    老孟导读:[Flutter实战]系列文章地址:http://laomengit.com/guide/introduction/mobile_system.html 默认情况下,Flutter 的滚动组 ...

  6. CSS背景颜色透明

    { filter:alpha(opacity=50); -moz-opacity:0.5; -khtml-opacity: 0.5; opacity: 0.5; } 兼容大部分主流浏览器 filter ...

  7. Vue 封装axios(四种请求)及相关介绍(十三)

    Vue 封装axios(四种请求)及相关介绍 首先axios是基于promise的http库 promise是什么? 1.主要用于异步计算 2.可以将异步操作队列化,按照期望的顺序执行,返回符合预期的 ...

  8. Vue父子之间的值传递

    将通过两个input框实现父子之间的值传递作为演示,效果图 先注册父子各一个组件,代码如下 <div id="app"> <parent></pare ...

  9. Python3笔记005 - 2.2 保留字与标识符

    第2章 python语言基础 python语法特点 保留字与标识符 变量 数据类型 运算符 输入和输出 2.2 保留字与标识符 2.2.1 保留字 查看python保留字 import keyword ...

  10. css兼容大部分浏览器的文本超出部分显示省略号

    css之字体多行省略(兼容大部分浏览器) 字体单行显示省略号 <style> .box1{ width: 500px; height: 1.5em; overflow: hidden; t ...