当前位置:首页 > 云服务器 > 正文

Python部署到云服务器


一、怎么在pycharm中使用anaconda部署python环境

如何使用anaconda在pycharm中部署Python环境:1.打开pycharm,点击文件和设置选项;2.找到projectinterpreter参数3.添加anaconda中的路径。

具体方法:

(推荐教程:Python入门指南)

首先点击pycharm中的File,然后选择“Settings””并单击;

然后选择“ProjectInterpreter”,在下一个字段中您应该选择anaconda中的位置;

最后单击“好的”。


二、如何部署pythonweb程序?

安装PythonWeb应用方案

一般情况下,高性能Python站点强烈建议安装nginx+uwsgi方式

apache+mod_wsgi方式简单、方便稳定,性能一般

API服务器可以直接使用turbo或者gevent

mod_python

原来的agi模式没有任何引入Python开发的地方。对于组织性不太强的性能管理系统和网站,部署Apache是一个不错的选择。此前,使用modo_python开发PythonWeb应用程序非常流行。

启动Apache服务器Python解释器以提供对Apache服务器内部的访问。mod_python的实现现在看来很差。每个httpmod_python请求都会通过进程初始化python解释器,加载代码,执行它,然后杀死进程。

mod_wsgi

如果你需要使用Apache来开发Python应用程序,mod_wsgi是一个更好的选择。WSGI的完整名称是WebServerGatewayInterface,由PEP-333定义。所有python文本框架都实现了wsgi接口,mod_wsgi可以用来实现任何wsgi框架工具。事实上,你可以使用mod_wsgi来开发没有任何框架的python程序。使用mod_wsgi守护进程模式,python程序将驻留在内存中,在初始化和销毁​​过程中不会有很大的开销,因此性能比mod_python更好。综上所述,在使用Apache部署PythonWeb应用时,推荐使用mod_wsgi守护进程模式。

Fastcgi

先声明一下:不建议使用fastcgi来开发Pythonweb。

近年来,由于levetpd的流行以及豆瓣的成功,fastcgi已经成为一种非常流行的部署方式。fastcgi与特殊语言无关,与Web服务器无关。常见的部署方式。Fastcgi是cgi的扩展。针对许多请求,会创建和销毁许多进程,这大大降低了操作系统的性能。

FastCGI没有为每个请求创建一个新的进程,而是使用连续的进程来处理一系列请求。这些进程由FastCGI服务器管理,而不是Web服务器。当请求到达时,Web服务器将环境变量和请求页面通过网络(例如FastCGI进程和Web服务器都在本地)或TCP连接(FastCGI进程在远程)传递给FastCGI进程。服务器)。

Ametry、Apache、lighttpd和nginx服务器都支持fastcgi。几年前,luxtpd的mod_fcgi模块表现强劲,luxtpd+fastcgi非常流行。不管是python、ruby还是php,很多网站都是这样开发的。由于nginx的兴起,现在很少有人使用lighttpd了。

Fastcgi并不是专门为python设计的。并非所有python框架都原生支持fastcgi。Flup是用Python编写的,与c中包含特殊wsgi的性能相比,其性能相当差。wsgi容器还出现了fastcgi稳定性差距。无论从哪里看,在开发Python程序时,fastcgi都已成为过去。几年前,当nginx没有内置uwsgi模块时,部署uwsgi是相当麻烦的。由于能够直接在nginx中使用uwsgi模块,uwsgi现在是开发高性能pythonWeb应用程序最可靠、最方便的方法。

在1U四核XEON服务器上,简单的wsgihandler也可以以超过8,000qps的速度使用AB。同时uwsgi具有出色的稳定性。以前,我们有一个每天有500w-1000w动态请求的站点,该站点使用uwsgi进行非常可靠的部署。

上面提到的方法都与互联网有关。在移动网络时代,我们需要的是高性能的API服务,而且这些服务都是顶级的。

tornado

tornado号称高性能,但是如果用它来写网站的话,其实也只是一般,就像uwsgi加上一些简单的框架一样。它的真正作用是编写API服务器和长连接服务器。

因为storm直接请求,所以很多人直接使用它来直接提供服务。这个方法没有什么用。通常情况下,supervisor启动多个turbo进程,然后manager通过nginx进行负载均衡。nginx1.14及更高版本的反向代理版本支持长连接,与CometTornado配合良好。

Pollucis也有一些奇怪的用途,比如将它用作wsgi容器。

gevent

是一种可以做很多事情的设备。在Web术语中,处理http请求类似于turbo,但它更简单并且没有cookie等。一些API服务的开发方式与turbo脚本编写时类似。同样,它的奇怪用途和龙卷风一样,可以使用wsgi容器。


三、如何在云端服务器运行JupyterNotebook以下是关键步骤。要求是您有虚拟机和用于登录的SSH帐户。没有的同学可以向阿里云等服务商申请。我个人推荐微软云“1元免费试用”一个月。一般来说,这些托管服务提供商都会提供基础教程,因此从设置主机到创建帐户,SSH登录应该不成问题。
接下来,下载miniconda,一个用于科学计算环境的管理软件,Anaconda的最小版本(假设您使用的是64位Linux虚拟机):
wget"uum。io/miniconda/Miniconda-latest-Linux-x86_”
然后安装:
sudobashMiniconda-latest-Linux-x86_
然后需要使用miniconda的环境管理软件来安装Conda-安装将由ipython和ipython-notebook安装。
condainstallipython
condainstallipython-notebook
接下来我们需要创建一个名为nbserver的配置。
ipythonprofilecreatenbserver
这将创建一个包含一些原始配置文件的文件夹。我们跳转到这个文件夹做一些配置
cd~/.ipython/profile_nbserver/
由于ipythonNotebook需要https连接,所以我们需要创建一个SSL证书。
opensslreq-x509-nodes-days365-newkeyrsa:
运行命令后,只需根据提示输入信息即可。当然,该证书尚未经过认证,因此请使用Chrome。我们稍后将在访问类浏览器时解决这个问题。接下来,我们创建一个密文密码。
python-c"importIPython;()"
运行后,输入一个创建密码哈希值的小程序。根据提示输入你要使用的安全密码:
输入密码:
确认密码:
sha1:b86e933199ad:a02e9592e59723da722..#这是我密码的哈希值,最后一个部分将被删除,您的密码结果应该不同
然后开始编辑配置文件。通过vi编辑该文件的命令如下:
viipython_notebook_
该文件可能不存在。然后通过vi创建一个。配置文件内容如下:
c=get_config()
#所有Matplotlib图像均通过iline显示
='inline'
#This该行指向我们刚刚创建的SSL证书
le=u'/home/azureuser/.ipython/profile_nbserver/'
#输入刚刚创建的密码的哈希值
rd=u'sha1:b86e933199ad:a02e9592e5etc...'
='*'
#指定运行端口,ipython默认为8888
=8888
#禁止同时运行ipython。打开浏览器
_browser=False
编辑完成后按两次Shift+z保存退出
配置完成后就可以使用ipythonNotebook运行服务器了:
jupyternotebook--config=/home/azureuser/.ipython/profile_nbserver/ipython_notebook_#指定刚刚创建的nbserver路径。这里默认的情况是微软Azure云
当然,微软云还需要配置服务器端端点,将云主机的https端口(443)指向内部端口8888。
在浏览器地址栏中输入:

此时会遇到https提示根证书不是认证证书。忽略这个提示并继续输入,你的ipythonNotebookserver已经准备好了!
输入您刚刚创建的密码,您就可以像在场一样使用它。