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