python 打包与部署

环境:win10、eclipse-jee-mars、python2.7

打包在linux上进行安装测试

1.1 打包

项目目录结构如下:

打包对象:utils.reg

在P1项目的顶级目录,也就是utils包的父目录下创建setup.py文件,内容如下:

#coding=utf-8

from distutils.core import setup

setup(

name=‘reg‘,

version=‘v1.0‘,

py_modules=[‘utils.reg‘]

)

直接运行该文件会报以下错误:

usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]

or: setup.py --help [cmd1 cmd2 ...]

or: setup.py --help-commands

or: setup.py cmd --help

error: no commands supplied

编译

python setup.py build

编译后在setup.py同目录下多出一个build目录

打包

G:\SVN\workspaces\P1\src>python setup.py sdist

running sdist

running check

warning: check: missing required meta-data: url

warning: check: missing meta-data: either (author and author_email) or (maintainer and maintainer_email) must be supplied

warning: sdist: manifest template ‘MANIFEST.in‘ does not exist (using default file list)

warning: sdist: standard file not found: should have one of README, README.txt

writing manifest file ‘MANIFEST‘

creating reg-v1.0

creating reg-v1.0\utils

copying files to reg-v1.0...

copying setup.py -> reg-v1.0

copying utils\__init__.py -> reg-v1.0\utils

copying utils\reg.py -> reg-v1.0\utils

creating dist

creating ‘dist\reg-v1.0.zip‘ and adding ‘reg-v1.0‘ to it

adding ‘reg-v1.0\PKG-INFO‘

adding ‘reg-v1.0\setup.py‘

adding ‘reg-v1.0\utils\reg.py‘

adding ‘reg-v1.0\utils\__init__.py‘

removing ‘reg-v1.0‘ (and everything under it)

打包后会在setup.py同目录下多出一个disk目录,存放打好的包

1.2 部署安装

python setup.py install

[[email protected] 201601]# unzip reg-v1.0.zip

Archive: reg-v1.0.zip

inflating: reg-v1.0/PKG-INFO

inflating: reg-v1.0/setup.py

inflating: reg-v1.0/utils/reg.py

inflating: reg-v1.0/utils/__init__.py

[[email protected] 201601]#

[[email protected] 201601]# ls

1.py hostname.py hostname.pyc reg-v1.0 reg-v1.0.zip

[[email protected] 201601]# cd reg-v1.0

[[email protected] reg-v1.0]# ls

PKG-INFO setup.py utils

[[email protected] reg-v1.0]# python setup.py install

running install

running build

running build_py

creating build

creating build/lib

creating build/lib/utils

copying utils/__init__.py -> build/lib/utils

copying utils/reg.py -> build/lib/utils

running install_lib

creating /usr/lib/python2.6/site-packages/utils

copying build/lib/utils/__init__.py -> /usr/lib/python2.6/site-packages/utils

copying build/lib/utils/reg.py -> /usr/lib/python2.6/site-packages/utils

byte-compiling /usr/lib/python2.6/site-packages/utils/__init__.py to __init__.pyc

byte-compiling /usr/lib/python2.6/site-packages/utils/reg.py to reg.pyc

running install_egg_info

Writing /usr/lib/python2.6/site-packages/reg-v1.0-py2.6.egg-info

[[email protected] reg-v1.0]#

[[email protected] reg-v1.0]#

安装后删除安装文件

[[email protected] 201601]# ls

1.py hostname.py hostname.pyc reg-v1.0 reg-v1.0.zip

[[email protected] 201601]# rm -rf reg*

测试安装

安装包utils下的reg.py文件有一个方法trm,该方法的作用为过滤掉一个字符串中的所有空白字符。测试如下

[[email protected] 201601]# python

Python 2.6.6 (r266:84292, Oct 12 2012, 14:23:48)

[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>>

>>> from utils.reg import trm

>>> s1 = trm(‘ab cd 123 ‘);

>>> s1

‘abcd123‘

>>>

1.3 简单的可执行文件

除了使用“python setup.py sdist”命令生成压缩包外,还可以简单地生成一些可执行安装程序。

使用bdist 命令创建单一的二进制Windows安装程序和Linux RPM文件;bdist可用格式有rpm与wininst。

python setup.py bdist --format=wininst

执行命令后,dist目录下多出一个可执行文件。

1.4 整个包及与之相关的所有文件打包

from distutils.core import setup

from setuptools import find_packages

setup(

name=‘reg‘,

version=‘v1.0‘,

packages=find_packages(exclude=[‘utils.*‘])

)

1.5 整个项目

#coding=utf-8

‘‘‘

Created on 2016118

@author: fei

‘‘‘

from distutils.core import setup

from setuptools import find_packages

setup(

name=‘reg‘,

version=‘v1.0‘,

packages=find_packages(exclude=[‘*.*‘])

)

时间: 2024-11-07 03:23:25

python 打包与部署的相关文章

BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第7章节--打包并部署SP2013 Apps

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第7章节--打包并部署SP2013 Apps 本章你将学到: 打包你创建的应用程序: 部署每个SP应用程序类型: 创建私有app目录.

BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第7章节--打包并部署SP2013 Apps 剖析App

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第7章节--打包并部署SP2013 Apps 剖析App 对于任何SP2013 apps,要部署并应用到任何人,它们必须首先打包成.app包,即Open Packaging Convention(OPC)包,并因此形似Zip文件.如果你重命名为.zip拓展名,你可以打开,并抽取它们,正如打开其他zip文件一样.OPC包格式已完全记录并标准化.

BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第7章节--打包并部署SP2013 Apps 打包并发布App

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第7章节--打包并部署SP2013 Apps 打包并发布App 现在既然你理解了一个app的四个主要部分,你可以开始打包并发布你自己的app的历程了.当你打包app时,主要将Web部署包.数据库包.SP解决方案包.app.manifest包含到.app文件中.然后你准备好发不到一个位置,让用户可以安装它.你可以发布一个app到私有app目录或者公共SP商店.下面部分带你了解发布到私有app目录,然后第8章节讨论发布到公

BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第7章节--打包并部署SP2013 Apps 部署一个App

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第7章节--打包并部署SP2013 Apps 部署一个App 部署Apps的可用的选项取决于你开发情境和应用程序类型.有三个主要的应用程序类型,并且每个要求不同部署情境.

【01】Python打包输出为.exe可执行文件

这是我的第01篇博客 Python打包输出为.exe可执行文件 在完成了之前的爬虫以后,为了给电脑上没有Python环境的朋友玩我的爬虫,开始尝试把爬虫的.py文件输出成.exe可执行文件. 首先,Python的教程上提到了py2exe的模块.但是一波搜索以后发现这个玩意只支持到Python3.4,而我用的是Python3.5.2,这让我很尴尬......于是继续一波搜索,发现了一个叫PyInstaller的模块.这个模块可以完美支持Python3.5,于是怒入. 首先是安装.去sourcefo

BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第7章节--打包并部署SP2013 Apps 总结

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第7章节--打包并部署SP2013 Apps 总结 VS2012结合SP2013提供了健壮且易于理解的一系列SPA应用程序的开发工具.无论你是否决定创建SP-hosted.Provider-hosted或者Autohosted的应用程序,在VS中可用的选项和发布工具都使得打包和发布你的应用程序包变得直接.

[转]Python打包工具

作者:Tarek Ziadé,翻译:张吉 原文:http://www.aosabook.org/en/packaging.html 转载地址:http://www.ituring.com.cn/article/19090 14.1 简介 对于如何安装软件,目前有两种思想流派.第一种是说软件应该自给自足,不依赖于其它任何部件,这点在Windows和Mac OS X系统中很流行.这种方式简化了软件的管理:每个软件都有自己独立的“领域”,安装和卸载它们不会对操作系统产生影响.如果软件依赖一项不常见的类

Python打包成exe

有个好网站http://www.lfd.uci.edu/~gohlke/pythonlibs/ , 这个网站可以下载许多非官方的python库的安装包. 1.首先去这个网站下载cx_freeze安装包后安装. 2.在C:\PythonXX\Scripts\ 下可以看到cxfreeze-quickstart.bat, XX为版本号 3.运行cxfreeze-quickstart.bat, 根据向导生成setup.py setup.py类似如下: importsys fromcx_Freeze im

使用pyinstaller 2.1将python打包并添加版本信息和图标

最近用 wxpython写了一个小的脚本,因为想要发布给没有装python和wxpython的人使用,遂决定使用pyinstaller 2.1进行打包. 其中遇到几个问题: 1,给打包的文件添加图标 查看pyinstaller 的操作手册很容易发现: -i <FILE.ico>, -i <FILE.exe,ID>, --icon=<FILE.ico>, --icon=<FILE.exe,ID>   Add an icon to the output exec