由于每次打开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. coderfoces#414 div.2

    第一次打cf 感觉很奇妙 开始看到题目感觉极其怪异 然后忽然发现第一题一堆数中的因数出现最多的不是2么 然后过了5分钟就被一个专门攻击的人hack掉了 不得不说题并不难甚至很水(都是几行的入门题) 但 ...

  2. express高效入门教程(2)

    2.请求和响应 2.1.请求相关 2.1.1.返回一个html页面 // 注意path模块需要先引入 app.get('/', function (req, res){ res.sendFile(pa ...

  3. java方法中开启一个线程

    很多业务场景下需要你在一个方法中去开启一个线程,去跑一些处理时间较长的代码,这样调用方就不必经过长时间的等待了.好了 话不多说  先上代码: package test; public class Th ...

  4. JavaScript基础对象创建模式之私有属性和方法(024)

    JavaScript没有特殊的语法来表示对象的私有属性和方法,默认的情况下,所有的属性和方法都是公有的.如下面用字面声明的对象: var myobj = { myprop: 1, getProp: f ...

  5. 数据库周刊28│开发者最喜爱的数据库是什么?阿里云脱口秀聊程序员转型;MySQL update误操作;PG流复制踩坑;PG异机归档;MySQL架构选型;Oracle技能表;Oracle文件损坏处理……

    热门资讯 1.Stackoverflow 2020年度报告出炉!开发者最喜爱的数据库是什么?[摘要]2020年2月,近6.5万名开发者参与了 Stackoverflow 的 2020 年度调查,这份报 ...

  6. 第 11 篇:基于 drf-haystack 的文章搜索接口

    作者:HelloGitHub-追梦人物 在 django 博客教程中,我们使用了 django-haystack 和 Elasticsearch 进行文章内容的搜索.django-haystack 默 ...

  7. IE6浏览器有哪些常见的bug,以及解决IE6常用bug的方法

    1.IE6不支持min-height,解决办法使用css hack: .target { min-height: 100px; height: auto !important; height: 100 ...

  8. 洛谷 P3574 [POI2014]FAR-FarmCraft

    题目传送门 题目描述 输入输出格式 输入格式: 输出格式: 一行,包含一个整数,代表题目中所说的最小时间. 输入输出样例 样例输入 样例输出 提示 分析 我们设f[x]为遍历完以x为根的子树且将这棵子 ...

  9. Django---进阶2

    目录 数据的查,改,删 django orm中如何创建表关系 django请求生命周期流程图(必会) 路由层 路由匹配 无名分组 有名分组 无名有名是否可以混合使用 反向解析 作业 数据的查,改,删 ...

  10. windows dos 批量重命名文件

    描述 在工作中经常出现 在同一目录下有一些 很多相同扩展名的文件但是名字看起来很乱各不同,我们想将它们统一重命名一下统一的格式,如果一个个去改名字太麻烦了. 这里我门就可以使用windows下 dos ...