1. 如何發布C和python混合編程的程序

派桑和c/c++實際上是不同的工具,一個是斧頭,一個是菜刀,各有各的用途。非要把讓菜刀能砍柴,內讓斧頭能容切菜,這種努力有無必要,值得考慮。
派桑常用劇本,嚕蘇,速度慢,不嚴謹,但有它的便利,例如它有 list, tuple, 之類的東西。
混合編程 常用於 提高 派桑 速度。
常用 方法 是(1)包含 Python.h 文件頭 (2)定義 派桑 的 各種對象 為 各種 c 結構
(3)派桑 的 各種對象用指針,名字用 Py 或 _Py大頭 動態分配 在 heap (4)用函數跟蹤統計 各種對象結構 的個數變化,即時 釋放內存(5)及時處理 派桑 exception
(6) 輸出為派桑的數據格式。
我沒有合起來用過,不過基本套路如此。

2. 如何部署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容器用。

3. python程序如何發布

pyinstaller
py2exe
cxFreeze

4. 如何發布python程序


如何發布一個Python程序:

1、安裝一個pyInstaller

在pycharm里點 file—–>setting—–>Project workspace——>Interpreter——>點pip右邊的+號,進入下面這個界面:

搜索pyInstaller, 點擊左下方Install package安裝(出現錯誤了可以多安裝幾次)

(或者在命令提示符界面 用 pip install pyinstaller命令安裝)

2、將.py文件打包成.exe文件

在完成第一步的安裝後,就開始我們的打包。在打包之前可以先運行一下你要打包的.py文件是否可以運行,然後進行打包。

在pycharm中右鍵點擊你將要打包的文件,找到Open in terminal點一下。

在下面出現的Local框內輸入命令:pyinstaller -F 文件名,運行。

然後進行打包

打包完成後,稍等一下會刷新出一個dist文件夾, 點擊 ,在裡面有一個 .exe文件,右鍵,點擊裡面的 Show in Explore 找到一個.exe文件(如果不一樣的可以看一下你下面打包成功後出現的路徑。)

3、發送

將打包好的.exe文件拉到你之前.py文件所在的文件夾,將所有需要的素材一起發送。

別人收到後就能打開你的.exe文件運行你的程序。

眾多python培訓視頻,盡在python學習網,歡迎在線學習!

5. python 應用程序發布

使用抄pyinstall 試試,這個很簡單,附上教程地址
http://blog.csdn.net/china_boys/article/details/2511921

6. 如何編譯Python程序

1、說明
編譯python程序就是把python腳本轉換成操作系統中的可執行文件,一般使用pyinstaller來完成。
2、步驟
1)安裝pyinstaller
使用pip install pyinstaller命令來安裝
2)編譯腳本
python安裝目錄\script\pyinstaller 腳本文件名
3)完成
執行腳本後就可以在腳本目錄生成dist目錄,目錄就有打包好的可執行文件
3、備注
pyinstaller參數
-w指令
直接發布的exe應用帶命令行調試窗口,在指令內加入-w命令可以屏蔽

-F指令
注意指令區分大小寫。這里是大寫。使用-F指令可以把應用打包成一個獨立的exe文件,否則是一個帶各種dll和依賴文件的文件夾

-p指令
這個指令後面可以增加pyinstaller搜索模塊的路徑。因為應用打包涉及的模塊很多。這里可以自己添加路徑。不過經過筆者測試,site-packages目錄下都是可以被識別的,不需要再手動添加

7. 如何部署python程序

簡單的方法就是安裝python環境,這樣就可以直接使用python程序
不用安裝的方法就是下載回python的便攜版,然後直接批處答理python 腳本文件路徑
還有一種就是使用pyinstaller之類的工具把python腳本打包成可執行文件。

8. 用python編寫程序

1.在python 2.5中找到空閑(python gui)(取決於您安裝的版本),然後單擊並彈出以下表單:在>>中;>在提示後輸入代碼並返回以執行代碼。空閑支持語法高亮,支持自動縮進,支持方法提示,但是提示很慢。2.在命令行窗口上運行此方法的前提是在系統的路徑變數中配置Python安裝路徑。在我的計算機上右擊屬性>高級-gt;環境變數,在系統變數列表中找到路徑項,單擊編輯按鈕,並附加\"c:python 25;\"(路徑和版本取決於您的安裝),保存退出。啟動>運行--進入cmd,返回到汽車,並打開cmd窗口。進入Python後,返回到Python環境。它的操作與空閑基本相同,但是沒有語法高亮、自動縮進和方法提示,唯一的優點是它運行速度比空閑快(如果你告訴我你可以用參數運行python,那麼你就不是新的了)。(沒有必要讀這篇文章,所以用處不大。使用ctrl+z退出此Python環境,然後返回汽車。3.在腳本中運行上述兩種方法是簡單的,但不適合大量代碼的開發。它只適用於查看單個句子或幾個代碼字的運行結果,或驗證函數的調用方法。這是我們常用的調試,驗證程序是常用的。如果它是一個正式的開發,它應該作為一個獨立的腳本運行。打開您的文本編輯器(我使用電子編輯器,當然您可以使用記事本,寫字板),輸入Python代碼,保存為*。py文件,然後雙擊運行它來執行,當然,如果必須配置系統路徑變數。我在它的目錄中打開一個cmd窗口並輸入Python*。Py運行l在代碼末尾添加以下語句:原始_輸入(),然後雙擊運行,結果將一直保持到您點擊返回按鈕後消失。在linux上運行python程序一般有以下兩種形式,與windows基本相同。首先,在終端窗口中空閑運行並將$python輸入到交互操作環境中,然後您可以在輸入時執行代碼:>>>列印'hello python'hello python>停止使用ctrl-d(G)。在py腳本所在的目錄中作為腳本輸入運行

9. 如何將python開發的程序打包發布

1、下載並安裝py2exe,可下載最新版本。

2、編寫安裝腳本,比較簡單,不過多解釋,如下:

Screenshot_setup.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from distutils.core import setup
import py2exe

includes = ["encodings", "encodings.*"]
data_files = ['CameraDll.dll']
options = {"py2exe":
{ "compressed": 1,
"optimize": 2,
"bundle_files": 1,
"includes": includes

}
}

setup(
version = "1.0",
description = "Screenshot Tool",
name = "Screenshot Tool",
options = options,
zipfile=None,
data_files = data_files,
console=[{"script": "Screenshot.py", "icon_resources": [(1, "Screenshot.ico")] }]
)
各參數含義見第5小節或執行python命令行下執行help(py2exe)查看。

3、打包程序:

a、將要找包的程序、文件和打包腳本放在同一目錄下,如下:

E:\tmp\pyexe_tmp>tree /F
文件夾 PATH 列表
卷序列號碼為 0007F240 101F:F68D
E:.
CameraDll.dll
screenshot.ico
Screenshot.py
screenshot_setup.py
沒有子文件夾

E:\tmp\pyexe_tmp>
b、執行打包腳本:
E:\tmp\pyexe_tmp>python screenshot_setup.py py2exe
python screenshot_setup.py py2exe
running py2exe
creating E:\tmp\pyexe_tmp\build
creating E:\tmp\pyexe_tmp\build\bdist.win32
creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe
creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe\collect-2.6
creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe\bundle-2.6
creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe\temp
creating E:\tmp\pyexe_tmp\dist
*** searching for required moles ***
*** parsing results ***
*** finding dlls needed ***
*** create binaries ***
*** byte compile python files ***
writing byte-compilation script 'e:\tmp\tmp1ecbcw.py'

10. 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/)