Linux 上搭建python、pip、setuptools、jupyter、openssl详细步骤和常见问题

参考博文:https://www.cnblogs.com/smileyes/p/7288487.html

                 https://blog.csdn.net/feng973/article/details/78835453

            https://www.linuxidc.com/Linux/2017-02/140234.htmhttp://blog.chinaunix.net/uid-27687885-id-3957301.html

            
https://www.jianshu.com/p/8779eac7f313 

因为自己为了在腾讯云服务器上搭建这些环境遇到超级多的问题,基本上网上可以搜到的问题,我都遇到了,嗯,人品就是好。。。这真的是挺难受的一个过程,为了让大家少踩雷区,我把我遇到的所有的问题,在网上找到的解决方案都在总结好,希望能帮到也刚刚入门的你们。

正常步骤:

一、先完成python的安装

1.下载源码包,后面的下载链接直接在python官网找的,如果想安装更高的版本自行更换

wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz

2.解压压缩包

tar xvf Python-2.7.10.tgz

3.指定安装路径

cd Python-2.7.10
./configure --prefix=/usr/local/python2

 

 

4.编译并安装

make
make install

 5.创建链接将python指向2.7版本

python默认是指向2.6版本的

删除原有的指向2.6的链接,创建新的链接指向2.7,执行python可以看到已经指向2.7版本了

rm -f /usr/bin/python
ln -s /usr/local/python2/bin/python /usr/bin/python

 

二、安装jupyter、

一般在Linux上直接在命令行执行下面命令便可以可到python版本。

enter description here
查看系统Python版本

在Windows,命令行输入同样命令进行检查。

如果你的系统是Python 3的版本,输入以下命令安装:

  1. python3 -m pip install --upgrade pip 
  2. python3 -m pip install jupyter 

如果你的系统是Python 2的版本,输入以下命令安装:

  1. python -m pip install --upgrade pip 
  2. python -m pip install jupyter 

其中可能会遇到下面的问题:

  1. Traceback (most recent call last):
  2.   File "setup.py", line 31, in < module>
  3.     from setuptools import setup, find_packages
  4. ImportError: No module named setuptools

提示没有setuptools,那就安装这个,安装步骤如下

wget https://pypi.python.org/packages/84/08/c01703c62d4eda7ae0c38deeb8adb864d0c90367a4c3e4299b917ac88a39/setup-tools-36.0.1.zip#md5=57fed189bd50ffc95bbc3ca38670834b

unzip setup-tools-36.0.1.zipcd setup-tools-36.0.1
python setup.py install

安装setuptools的过程中你可能会遇到以下问题,没有就跳过。

    "Compression requires the (missing) zlib module" 

RuntimeError: Compression requires the (missing) zlib module

解决方法:

yum install zlib

yum install zlib-devel

如果安装包都没有

wget http://zlib.net/zlib-1.2.8.tar.gz
tar -xvf zlib-
1.2.8.tar.gz
cd zlib-
1.2.8
./configure
make
make install
zlib的问题解决完之后重新编译python

cd ../Python2
make
make install这个过程中,可能出现如下错误;
 -bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory

查看yum和python的rpm是否安装,系统已安装yum和python的的rpm包。
查看一下系统命令:
# ll /usr/bin/yum    #yum命令存在
-rwxr-xr-x 1 root root 801 Sep 21  2011 /usr/bin/yum

# ll python  #原因在这
lrwxrwxrwx 1 root root 26 May  7 15:06 python -> PREFIX/Python-2.7.2/python

原来python的软连接源文件已经不存在,所以出现上面错误;
解决办法:
重新做一个python的软连接,用系统的python的rpm包python2.7;问题解决。
# ln -s /usr/bin/python2.7 /usr/bin/python

再重新试试setuptools的安装

cd setup-tools-36.0.1

python setup.py build
 
python setup.py install

现在安装pip ,同样去python官网找的下载链接,需要setup-tools和pip两个包

wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9

解压压缩包

tar xvf pip-9.0.1.tar.gz

【如果没有unzip,使用yum install unzip安装先,yum是不是不能使用了】

安装pip,进入pip目录,执行python setup.py install安装pip

cd pip-9.0.1
python setup.py install

 

安装成功之后创建pip的软链接

ln -s /usr/local/python2/bin/pip /usr/bin/pip
pip

可以愉快的使用pip了~~~~


然后再次安装jupyter

  1. python -m pip install --upgrade pip 
  2. python -m pip install jupyter 


能遇到以下问题:

Python ImportError: cannot import name HTTPSHandler

解决方法:

yum install openssl openssl-devel -y

yum update openssl再试试安装jupyter过程,可能会报下面的错Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-wcZlpN/ipython/安装ipython:python -m IPython但可能会出现错误,使用pippip install ipython还是可能会出现Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-wcZlpN/ipython/

有两种解决方法,第一种是从github下载5.X的源代码编译安装,另一种是指定ipython的版本【推荐】。先介绍第一种方式,源代码编译安装【来自于github官方指导】

wget https://codeload.github.com/ipython/ipython/zip/5.x -o ipython-5.x.zip
unzip ipython-5.x.zip
cd ipython-5.x
# The [test] extra ensures test dependencies are installed too:
pip install .[test]
#Do not invoke setup.py directly as this can have undesirable consequences for further upgrades. We do not recommend using easy_install either.
ln -sf /usr/local/bin/ipython /usr/bin/ipython
ipython -V

或者指定版本【推荐】

sudo pip install ipython==8888 #现指定一个不存在的版本以查看可用版本,发现5版本中有5.3.0(你的可能不一样)
sudo pip install ipython==5.3.0


基本上述包含了大部分安装问题的情况,然后jupyter就可以启动了,输入:

jupyter notebook可能会遇到Error executing Jupyter command 'notebook': [Errno 'jupyter-notebook' not found] 2可以尝试 输入jupyter-notebook,如果还没有解决,可以试试

重新安装jupyter

pip3 install --upgrade --force-reinstall --no-cache-dir jupyter

然后,使用命令jupyter notebook就可以在浏览器中打开了

修改c.NotebookApp.ip = '*'

修改c.NotebookApp.open_browser = False

修改c.NotebookApp.port = 8888(根据端口情况修改)

防火墙配置

firewall-cmd --zone=public --add-port=8888/tcp --permanent

sudo systemctl restart firewalld


运行notebook

命令行输入:jupyter notebook

浏览器输入:http://个人ip:8888/tree

防火墙配置

firewall-cmd --zone=public --add-port=8888/tcp --permanent

sudo systemctl restart firewalld


7

运行notebook

命令行输入:jupyter notebook

浏览器输入:http://个人ip:8888/tree

可能运行的时候遇到

Running as root is not recommended. Use --allow-root to bypass

首先输入,查看配置文件位置

[as-pc as]# jupyter notebook --generate-config --allow-root 

Overwrite /root/.jupyter/jupyter_notebook_config.py with default config? [y/N]y
Writing default config to: /root/.jupyter/jupyter_notebook_config.py
  • 1
  • 2
  • 3
  • 4

接下来打开配置文件

gedit /root/.jupyter/jupyter_notebook_config.py
  • 1

找到这一行

#c.NotebookApp.allow_root = False  
  • 1

去掉#,并修改成True即可解决root权限运行的问题

c.NotebookApp.allow_root =True
  • 1

保存,重新运行程序

jupyter notebook
还有问题可以试试

jupyter notebook启动出错解决方法

今天在云服务器上安装了jupyter,按照官方教程安装完成。输入如下命令启动:

jupyter notebook
  • 1

然后就报了下面的错

Traceback (most recent call last):
  File "/usr/local/bin/jupyter-notebook", line 11, in <module>
    sys.exit(main())
  File "/home/ubuntu/.local/lib/python3.5/site-packages/jupyter_core/application.py", line 266, in launch_instance
    return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)
  File "/home/ubuntu/.local/lib/python3.5/site-packages/traitlets/config/application.py", line 657, in launch_instance
    app.initialize(argv)
  File "<decorator-gen-7>", line 2, in initialize
  File "/home/ubuntu/.local/lib/python3.5/site-packages/traitlets/config/application.py", line 87, in catch_config_error
    return method(app, *args, **kwargs)
  File "/home/ubuntu/.local/lib/python3.5/site-packages/notebook/notebookapp.py", line 1368, in initialize
    self.init_webapp()
  File "/home/ubuntu/.local/lib/python3.5/site-packages/notebook/notebookapp.py", line 1188, in init_webapp
    self.http_server.listen(port, self.ip)
  File "/home/ubuntu/.local/lib/python3.5/site-packages/tornado/tcpserver.py", line 142, in listen
    sockets = bind_sockets(port, address=address)
  File "/home/ubuntu/.local/lib/python3.5/site-packages/tornado/netutil.py", line 197, in bind_sockets
    sock.bind(sockaddr)
OSError: [Errno 99] Cannot assign requested address
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

根据报错信息来看是不能分配地址,这就莫名奇妙了,按说就算是以127.0.0.1或者是localhost应该也尅启动啊,怎么就无法启动了。经过不断探索终于找到解决方法。

1 . 输入如下命令:

jupyter notebook --ip=127.0.0.1
  • 1

发现如果是指定本地ip是可以启动的,但是只能在本地访问,但是我是想在云服务器上启动,远程访问啊。

2 . 输入命令:

jupyter notebook --ip=云服务ip 
  • 1

但是仍然提示前面的报错。
这时候联想到MySQL如果需要远程访问要更改配置文件,因为MySQL的配置文件默认绑定了127.0.0.1,那jupyter可能也是绑定了这个地址,那我们只需要更改配置文件就可以了。
搜索一番,发现原来新装的jupyter是没有配置文件的,需要手动生成,执行如下命令:

jupyter notebook --generate-config
  • 1

就会在你的个人用户目录下的.jupyter 下生成配置文件 jupyter_notebook_config.py,打开以后找到如下一行:

#c.NotebookApp.ip = 'localhost'
  • 1

改为

c.NotebookApp.ip = '*'
  • 1

意思为允许所有ip连接,这样问题就解决了,希望可以帮助到有需要的人。

还有可能因为

在控制台-安全组中,新建规则,放开端口访问(可以自定义8888端口,也可以直接放开所有端口),然后关联服务器实例。这一步很重要,也是区别于别家服务器的地方,如果不设置安全组的话,端口受限是无法访问的;

操作



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值