python程序部署
1. python運行環境怎麼部署
新人建議安裝抄anaconda,去官網下載,和襲安裝普通軟體一樣。免費,操作簡單,裡面也集成了很多常見的包。強烈建議使用裡面的jupyter notebook或者jupyter lab,可以把你運行的代碼,運行結果,筆記等整合到一起,非常利於學習。
2. 如何部署python程序
簡單的方法就是安裝python環境,這樣就可以直接使用python程序
不用安裝的方法就是下載回python的便攜版,然後直接批處答理python 腳本文件路徑
還有一種就是使用pyinstaller之類的工具把python腳本打包成可執行文件。
3. python程序如何發布
pyinstaller
py2exe
cxFreeze
4. tomcat能部署python程序嗎
不能,因為tomcat只是一個JAVA 的容器。
也就是說tomcat是在JVM的基礎上運行的(當然你要用JAVA寫一個python的代碼解釋器也不是沒可能,只是沒必要罷了)。
apache就可以部署python的web applcation 比較常用的是django這個框架。
(4)python程序部署擴展閱讀:
Tomcat 伺服器是一個免費的開放源代碼的Web 應用伺服器,屬於輕量級應用伺服器,在中小型系統和並發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選,但是不能部署python程序。
對於一個初學者來說,可以這樣認為,當在一台機器上配置好Apache 伺服器,可利用它響應HTML(標准通用標記語言下的一個應用)頁面的訪問請求。
5. 可以部署python項目嗎
不能 因為tomcat只是一個JAVA 的容器。也就是說tomcat是在JVM的基礎上運行的(當然你要用JAVA寫一個python的代碼解釋器也不是沒可能,只是沒必要罷了)。apache就可以部署python的web applcation 現在比流行的是django這個框架。如果你技術足夠好的話,完全可以用python來寫一個務服器,這樣你只要裝了python就可以了,不用第三方的伺服器。像django就自帶有一個,但是它只支持單個用戶訪問(開發測試用的),你也可以在這基礎上進行第二次開發,把它改成自己的伺服器
6. python 程序怎麼打包發布
發布自己的python包
1. 首先先去PyPI注冊帳號
2. 配置~/.pypirc如下:
[distutils]
index-servers =
pypi
pypitest
[pypi]
username:ShaoZhengjiang
password:mypassword
[pypitest]
username:ShaoZhengjiang
password:mypassword
3. 然後注冊並上傳自己的包到測試伺服器
pypi提供了一個測試伺服器,我們可以在這個測試伺服器上做測試。
python setup.py register -r pypitest
然後
python setup.py sdist upload -r pypitest
若沒有問題我們應該不會得到任何錯誤。
4. 上傳至PyPI
若上面的測試成功,我們就可以按照相同的步驟將包注冊並上傳。
python setup.py register -r pypi
python setup.py sdist upload -r pypi
Ok,之後我們就可以在PyPI上看到我們自己的包了。(https://pypi.python.org/pypi/vaspy/)
7. python程序怎麼部署到雲伺服器
你需要登錄雲伺服器管理控制台,記錄被我打馬賽克位置的公網ip。
登錄伺服器
windows推薦下putty進行連接遠程伺服器,linux和macos不需要那麼麻煩,ssl就行了。
putty
在下圖的host name中輸入你的公網IP,點擊open。
putty界面
輸入密碼,看不見輸入不要慌,linux就是這樣保護安全的。
Paste_Image.png
登錄成功界面見下圖,然後想怎麼操作就怎麼操作了。
登陸成功界面
運行我的python文件
推薦FileZilla進行文件傳輸(不具體說明了),我上傳了我的flask網站項目
我的項目
記住伺服器同時有Python2和Python3,
python
運行的時候記得使用合適的版本,我用的是虛擬環境(自行網路如何創建虛擬環境)
在運行python之前先安裝一個screen,他可以將一個程序在後台運行
sudo apt-get install screen
運行python文件,成功後按下ctrl+A和ctrl+D可以隱藏。隱藏後可以輸入screen -r 恢復。
運行成功
8. 如何部署python web程序
Python Web 程序的部署方案
綜合而言, 高性能的Python web站點部署方式首推 nginx + uwsgi
apache + mod_wsgi 是簡單穩定但性能一般的方式
API伺服器 可以直接使用tornado或者gevent
mod_python
非常原始的cgi模式部署python已經沒有什麼好介紹了。對於不太追求性能的管理系統和網站來說,使用 Apache 部署是一個不錯的選擇。較早的時候,使用 mode_python 部署python的web應用十分流行,在Django 0.96 的時候官方文檔甚至推薦這種方式。
它將Python解釋器嵌入到Apache server,以提供一個訪問Apache server內部的介面。mod_python 在現在看來性能是不佳的,每一個http請求 mod_python 都會由一個進程初始化python解釋器、載入代碼、執行、然後銷毀進程。
mod_wsgi
如果非要用Apache來部署python應用,mod_wsgi是一個更好的選擇。WSGI 全稱是 Web Server Gateway Interface ,由 PEP-333 定義。 基本上所有的python web框架都實現了wsgi介面,用mod_wsgi 能部署任何實現了wsgi的框架。實際上,不需要任何框架也可以用mod_wsgi 部署python程序。使用mod_wsgi的daemon模式,python程序會常駐內存,不會有很大的初始化和銷毀進程方面的開銷,所以性能是好於mod_python的。綜合來說,使用Apache部署python web程序,推薦使用mod_wsgi的daemon模式。
Fastcgi
先說觀點:不建議用fastcgi的方式部署Python web。
前幾年由於lighttpd風頭正勁和豆瓣的成功案例,fastcgi是一種很流行的部署方式。fastcgi與具體語言無關,也與web伺服器無關。是一種通用的部署方式。fastcgi是對於cgi的增強,CGI程序運行在獨立的進程中,並對每個Web請求建立一個進程。面對大量請求,進程的大量建立和消亡使操作系統性能大大下降。
與為每個請求創建一個新的進程不同,FastCGI使用持續的進程來處理一連串的請求。這些進程由FastCGI伺服器管理,而不是web伺服器。 當進來一個請求時,web伺服器把環境變數和這個頁面請求通過一個socket比如FastCGI進程與web伺服器都位於本地)或者一個TCP connection(FastCGI進程在遠端的server farm)傳遞給FastCGI進程。
主流的web伺服器,Apache,lighttpd,nginx 都支持fastcgi,在幾年前,lighttpd的mod_fcgi模塊性能強勁,lighttpd+fastcgi十分流行。無論是python,ruby還是php,都有大量的站點使用這種方式部署。由於nginx的崛起,現在很少有人使用lighttpd了。
fastcgi 並不是專門為python設計,並不是所有的python框架天然的支持fastcgi,通常需要flup這樣的容器來配適。flup由python編寫,和專門的c實現的wsgi容器比起來性能顯得相當不堪。fastcgi的穩定性對於新興的wsgi容器來說也有差距。無論從哪個方面來看,部署python web程序,fastcgi 都已經是過去式。
uwsgi
前幾年nginx還未內置uwsgi模塊的時候,部署uwsgi還是一件挺麻煩的事情。隨著能夠在nginx中直接使用uwsgi模塊,uwsgi已經是最可靠,最方便的高性能python web程序的部署方式了。
在1U的四核XEON伺服器上,一個簡單的wsgi handler甚至能用AB壓到8000以上的qps,這已經是完爆tornado,接近gevent的性能了。 同時,uwsgi的穩定性極好。之前我們有個每天500w-1000w動態請求的站點使用uwsgi部署非常穩定,在一個渣HP 1U 伺服器上,基本不用管它。
上面提到的部署方式都是相對於web網站的方式,在移動互聯網的時代,我們需要的是高性能的API服務,上面這些都是過時的東西。
tornado
tornado 號稱高性能,如果拿他寫網站,其實一般般,只不過跟uwsgi加一些簡單框架差不多而已。它真正的作用,是用來寫API伺服器和長連接的伺服器。
由於tornado能夠直接處理http請求,很多人直接拿他來裸奔直接提供服務。這種方式是不可取的,單線程的tornado只能利用cpu的一個核心,並且一旦阻塞直接就廢了。通常情況下,由supervisor啟動多個tornado進程,通過nginx進行反向代理負載均衡。nginx 1.14 以後的版本反向代理支持長連接,配合tornado的comet效果很好。
tornado還有一些比較奇葩的用法,比如用來做wsgi容器之類的。
gevent
gevent是一個神器,能做的事情很多。在web方面,處理http請求,用起來其實跟tornado差不多,但是要簡陋很多,cookie之類的都沒有。用gevent寫的一些API服務,部署方式還是類似tornado,用supervisor管理多個守護進程,通過nginx做負載均衡。 同樣的它的奇葩用法也和tornado一樣,可以當wsgi容器用。
9. 怎麼把python部署到伺服器
使用pip或easy_install可以管理和安裝python的package包,實際上它們都是從pypi伺服器中搜索和下載package的。目前在pypi伺服器上,有超過三萬多個package,同時還允許我們將自己的代碼也上傳發布到伺服器上。這樣,世界上的所有人都能使用pip或easy_install來下載使用我們的代碼了。
具體步驟如下:
首先創建項目文件和setup文件。
目錄文件結構如下:
project/
simpletest/
__init__.py
test.py
setup.py
假設項目文件只有一個simpletest包,裡面有一個test.py文件。
創建的setup.py文件格式大致如下,其中,install_requires欄位可以列出依賴的包信息,用戶使用pip或easy_install安裝時會自動下載依賴的包。詳細的格式參考文檔。
from setuptools import setup, find_packages
setup(
name = 'simpletest',
version = '0.0.1',
keywords = ('simple', 'test'),
description = 'just a simple test',
license = 'MIT License',
install_requires = ['simplejson>=1.1'],
author = 'yjx',
author_email = '[email protected]',
packages = find_packages(),
platforms = 'any',
)
然後將代碼打包。
打包只需要執行python
setup.py xxx命令即可,其中xxx是打包格式的選項,如下:
# 以下所有生成文件將在當前路徑下 dist 目錄中
python setup.py bdist_egg # 生成easy_install支持的格式
python setup.py sdist # 生成pip支持的格式,下文以此為例
發布到pypi。
發布到pypi首先需要注冊一個賬號,然後進行如下兩步:
注冊package。輸入python setup.py register。
上傳文件。輸入python setup.py sdist upload。
安裝測試
上傳成功後,就可以使用pip來下載安裝了。
另外,pypi還有一個測試伺服器,可以在這個測試伺服器上做測試,測試的時候需要給命令指定額外的"-r"或"-i"選項,如python
setup.py register -r "",python
setup.py sdist upload -r "",pip
install -i "" simpletest。
發布到測試伺服器的時候,建議在linux或cygwin中發布,如果是在windows中,參考文檔,需要生成.pypirc文件