参考博文: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版本。
在Windows,命令行输入同样命令进行检查。
如果你的系统是Python 3的版本,输入以下命令安装:
- python3 -m pip install --upgrade pip
- python3 -m pip install jupyter
如果你的系统是Python 2的版本,输入以下命令安装:
- python -m pip install --upgrade pip
- python -m pip install jupyter
其中可能会遇到下面的问题:
-
Traceback (most recent call last):
-
File "setup.py", line 31, in < module>
-
from setuptools import setup, find_packages
-
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 installzlib的问题解决完之后重新编译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
- python -m pip install --upgrade pip
- 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
运行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端口,也可以直接放开所有端口),然后关联服务器实例。这一步很重要,也是区别于别家服务器的地方,如果不设置安全组的话,端口受限是无法访问的;
操作