使用云服务器(ubuntu)进行开发(python)所需要进行的配置,(本人所遇到的问题,不代表大众,只供参考)

让我们先安装个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;

 OK

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值