环境: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

[root@bak 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

[root@bak 201601]#

[root@bak 201601]# ls

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

[root@bak 201601]# cd reg-v1.0

[root@bak reg-v1.0]# ls

PKG-INFO setup.py utils

[root@bak 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

[root@bak reg-v1.0]#

[root@bak reg-v1.0]#

安装后删除安装文件

[root@bak 201601]# ls

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

[root@bak 201601]# rm -rf reg*

测试安装

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

[root@bak 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 2016年1月18日

@author: fei

'''

from distutils.core import setup

from setuptools import find_packages

setup(

name='reg',

version='v1.0',

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

)

python 打包与部署的更多相关文章

  1. Linux06 /Python web项目部署

    Linux06 /Python web项目部署 目录 Linux06 /Python web项目部署 1. 部署方式 2. 纯后端代码部署/CRM为例 1. 部署方式 2. crm项目详细部署步骤 3 ...

  2. Python 打包和发布方法汇总

    以下主要Python打包汇总,作为学习备份: 一.使用python内部基础工具包Distutils打包程序 1. 在打包之前需要做的就是配置好安装脚本,一般为setup.py文件: 示例(setup. ...

  3. 阿里云服务器Linux CentOS安装配置(九)shell编译、打包、部署

    阿里云服务器Linux CentOS安装配置(九)shell编译.打包.部署 1.查询当前目录以及子目录下所有的java文件,并显示查询结果 find . -name *.java -type f - ...

  4. 不会用ant打包、部署项目的工程师,不是一个好程序员(测试)

    副标题:利用ant脚本 自动构建svn增量/全量 系统程序升级包 首先请允许我这样说,作为开发或测试,你一定要具备这种本领.你可以手动打包.部署你的工程,但这不是最好的方法.最好的方式就是全自动化的方 ...

  5. python打包成exe

    目前有三种方法可以实现python打包成exe,分别为 py2exe Pyinstaller cx_Freeze 其中没有一个是完美的 1.py2exe的话不支持egg类型的python库 2.Pyi ...

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

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第7章节--打包并部署SP2013 Apps 打包并公布App         如今既然你理解了一个app的四个主要部分, ...

  7. Hudson + SVN + Maven 持续集成实现自动化编译、打包、部署(over SSH 和 Deploy war/ear to a container 两种部署方式)

    下载hudson ,安装部署http://hudson-ci.org/ 将下载的hudson-3.3.3.war放到tomcat的webapps目录下并启动tomcat,输入地址访问 点击Instal ...

  8. Spring Boot应用 打包与部署指南

    Spring Boot的打包与部署有何特点? Java Web应用在Spring Boot之前,通常是打包成war(Web application ARchive)包,结合Tomcat来完成部署. 对 ...

  9. Python打包工具setuptools的使用

    将我们写的Python程序发布成包后,可以使其能够安装使用. 在项目上测试的时候,某些情况下,可以将Python打包,然后上传到测试服务器,安装测试. setuptools是常用的打包工具. 一个简单 ...

随机推荐

  1. HDU(3555),数位DP

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=3555 Bomb Time Limit: 2000/1000 MS (Java/Others ...

  2. ie兼容整理

    那里面有东西要长研究 ie bug集合关于如何给各种浏览器打bug,可查询:browser hacks 几篇处理ie问题的帖子,帖子1

  3. 炮(cannon)

    炮(cannon)[题目描述] 众所周知,双炮叠叠将是中国象棋中很厉害的一招必杀技.炮吃子时必须隔一个棋子跳吃,即俗称“炮打隔子”. 炮跟炮显然不能在一起打起来,于是rly一天借来了许多许多的炮在棋盘 ...

  4. 分享:扩展Visual Studio 的简单方法

    作为 MS 阵营的码农,相信Visual Studio 肯定是大家的主要武器了,但不知道大家有没有扩展Visual Studio 的需求. 最近我需要做一个工具,发现最好是实现在VS里面,于是,Goo ...

  5. DataGridView的自定义列排序

    1,将需要进行排序的列做属性的设置 this.colUserName.SortMode = DataGridViewColumnSortMode.Programmatic; 2,添加列的事件 //点击 ...

  6. C#中关键字ref修饰类对象或结构体[转]

    using System; using System.Collections.Generic; using System.Text; namespace CSharpTest { struct Dog ...

  7. 模块mod_h323的编译

    去h.323plus官网上下载关联的库 http://www.h323plus.org/source/ 很贴心,分操作系统下载,而且关联的ptlib库的版本也一并列了出来. 一.编译ptlib库 ex ...

  8. 如何查看postfix的版本

    [root@localhost sasl2]# postconf -d | grep mail_versionmail_version = 2.10.1milter_macro_v = $mail_n ...

  9. Creating Excel File in Oracle Forms

    Below is the example to create an excel file in Oracle Forms.Pass the Sql query string to the below ...

  10. python 列表函数

    list函数: 功能:将字符创转化为列表,例: 列表基本函数: 1.元素赋值,例: 注意:通过list[0]= 'hel',如果原来位置上有值,会覆盖掉原来的. 2.分片操作 1)显示序列,例: 注意 ...