让我们先安装个python3.6的环境:
1. 获取
wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz
tar -xzvf Python-3.6.6.tgz -C /tmp
cd /tmp/Python-3.6.6/
2. 把Python3.6安装到 /usr/local 目录
./configure --prefix=/usr/local
make
make altinstall
3. 更改/usr/bin/python链接
ln -s /usr/local/bin/python3.6 /usr/bin/python3
注意:
如果你真的安装了按照如上所属,那就错了,等你安装完成会出现下边的错误,请看下边。。
首先是安装python3.6时所遇到的问题
python3安装过程中出现的ssl问题 ,No module named _ssl,也许当你python的所有工作都做完了,安装好了,但是当你使用的时候你会发现,No module named _ssl,等等的一切怎么会出现这个问题,然后就开始上网找,配置,可是怎么都整不好,现在按我的做,我教你,
下载 openssl 从这个网址http://www.openssl.org/source/openssl-1.0.2j.tar.gz使用 wget http://www.openssl.org/source/openssl-1.0.2j.tar.gz命令在你的命令行界面执行,
解压
tar -xzf openssl-1.0.2j.tar.gz
进入解压目录:
cd openssl-1.0.2j
设定Openssl 安装,( --prefix )参数为欲安装之目录,也就是安装后的档案会出现在该目录下:
./config --prefix=/usr/local/openssl
执行:
make && make install
还有builtins.ModuleNotFoundError: No module named '_sqlite3'错误我们需要安装apt-get install libsqlite3-dev,然后再进行python的配置安装
接着我们再安装python3环境,但是这里我们要改一个地方
首先进入我们解压目录,也就是我们上边进行到第一步末尾及 cd /tmp/ Python-3.6.6目录下,编辑setup.py文件,找到
search_for_ssl_incs_in = [
'/usr/local/ssl/include',
'/usr/local/ssl/include/openssl', # 添加此行,
'/usr/contrib/ssl/include/'
修改完成之后 保存退出,然后再 执行 cd cd /tmp/ Python-3.6.6/Module/ 找到Setup.dist文件
# line: 207
# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
SSL=/usr/local/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
把最后四行的注释打开。
接着执行安装python的剩余步骤就行了,也就是从第二步开始。
然后接下来是设置ubuntu中默认使用python环境,我们把python2改为python3
我们可以使用 update-alternatives 来为整个系统更改 Python 版本。以 root 身份登录,首先罗列出所有可用的 python 替代版本信息
# update-alternatives --list python
update-alternatives: error: no alternatives for python
如果出现以上所示的错误信息,则表示 Python 的替代版本尚未被 update-alternatives 命令识别。想解决这个问题,我们需要更新一下替代列表,将 python2.7 和 python3.6 放入其中,
root@iZ2zeiwgxxbcd5xa1rh9bqZ:~# update-alternatives --install /usr/bin/python python /usr/bin/python2.7 3
update-alternatives: using /usr/bin/python2.7 to provide /usr/bin/python (python) in auto mode
update-alternatives --install /usr/bin/python python /usr/local/bin/python3.6 1
--install 选项使用了多个参数用于创建符号链接。最后一个参数指定了此选项的优先级,如果我们没有手动来设置替代选项,那么具有最高优先级的选项就会被选中。这个例子中,我们为 /usr/bin/python3.6 设置的优先级为2,所以update-alternatives 命令会自动将它设置为默认 Python 版本。
>>>python --version
Python 3.6.6 (default, Dec 8 2018, 15:31:02)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>
此时当使用python --version命令时,就会显示我们的版本是python3
root@iZ2zeiwgxxbcd5xa1rh9bqZ:/usr/local/bin# update-alternatives --list python
/usr/bin/python2.7
/usr/local/bin/python3.6
# 此时执行 update-alternatives --list python命令,会显示我们当前的python版本
# 现在我们再次执行如下命令就可以在任意版本之间切换了
update-alternatives --config python
root@iZ2zeiwgxxbcd5xa1rh9bqZ:~# update-alternatives --config python
There are 2 choices for the alternative python (providing /usr/bin/python).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/python2.7 3 auto mode
1 /usr/bin/python2.7 3 manual mode
2 /usr/local/bin/python3.6 1 manual mode
但是我们发现还有一个问题如下:
那就是我们使用pip时,会出现 File "/usr/local/bin/pip", line 7, in <module>
from pip import main
ImportError: cannot import name 'main'的错误,这时候我们去修改一个文件就行了,
我们将/usr/local/bin/下的pip文件进行修改
修改前:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from pip import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())
修改后:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from pip import __main__
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(__main__._main())
~
这样使用pip命令就会成功,而且默认使用的python环境使python3的。
如何出现subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.
的报错,直接使用命令 rm -rf /usr/bin/lsb_release,就可以了。
4.安装virtualenvwrapper
pip install virtualenvwrapper
编辑.bashrc文件
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
重新加载.bashrc文件
source ~/.bashrc
然后是mysql的安装和配置
1. sudo apt-get install mysql-server
2. apt-get isntall mysql-client
3. sudo apt-get install libmysqlclient-dev
4 设置bind-ip
vim /etc/my.cnf
在 [mysqld]:
下面加一行
bind-address = 0.0.0.0
5. 设置外部ip可以访问
先进入mysql才能运行下面命令:
mysql 直接进入就行
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;