python打包文件
来源:互联网 发布:淘宝账户怎么注册不了 编辑:程序博客网 时间:2024/05/15 00:29
本文主要介绍如何制作一个自己的python模块。
一、单个模块的导入
python中,当需要用到其他模块中,可以使用import导入需要的模块明,如:
import subprocess
subprocess.Popen('cd /home/sqxu')
该例中,我们需要使用subprocess模块下的Popen类,可以直接通过import subprocess导入该模块,其他如os,sys等都是python自带的模块,可以直接导入。
导入单个模块还有一种情况,假设有模块helloworld.py,如果希望像上面的subprocess一样直接导入,最简单的方式是将模块helloworld.py手动添加至$python/Lib中,即“c:\\Python27\\Lib”,然后即可直接导入,一般不推荐这种方法,
二、多个模块的简单导入
我们在实际编写代码时会有多个包文件和多个py文件,例如在包package中有子包package1、package2以及module.py,并且在子包package1中有module1.py,在子包package2中有module2.py,假设在module.py中要用到module1.py和module2.py中的类,此时可以在module.py中直接通过如下代码实现:
import package1.module1
import package2.module2
这种方法可以简单的实现自定义模块的导入,但前提是在同一个包文件中,如果module.py不在包package中,上述导入失败。
三、自定义模块的制作-distutils
distutils为python标准库的一部分,可以很方便的让用户创建新的模块、包和工具,并且安装也很容易,下面将详细介绍使用setup()新建模块。
在文件夹MyDemo新建一个mydemo.py文件,如下:
#!/usr/bin/env python
# -*- coding:utf8 -*-
'''
Created on 2015年2月4日
Func: setup()使用
@author: sqxu
'''
def print_hello():
print 'hello'
def print_world():
print 'world'
接下来就可以利用该py新建一个模块了,在MyDemo文件夹下新建一个setup.py,如下:
#!/usr/bin/env python
# -*- coding:utf8 -*-
'''
Created on 2015年2月4日
Func: setup内容
@author: sqxu
'''
from distutils.core import setup
setup(
name = 'mydemo',
version = '1.0',
author = 'sqxu',
py_modules = ['mydemo'],
description = 'my demo with distutils'
)
在setup()中会说明模块的名字,版本等信息,python提供多个属性模块进行说明,如下所示:
# Legal keyword arguments for the setup() function
setup_keywords = ('distclass', 'script_name', 'script_args', 'options',
'name', 'version', 'author', 'author_email',
'maintainer', 'maintainer_email', 'url', 'license',
'description', 'long_description', 'keywords',
'platforms', 'classifiers', 'download_url',
'requires', 'provides', 'obsoletes',
)
完成setup.py后,输入命令python setup.py sdist,在当前目录下会生成文件夹dist,进入dist后有压缩包mydemo-1.0.zip,解压该文件后利用python setup.py install完成该模块的安装,然后即可使用该模块了。linux下会生成一个tar.gz文件,安装方法一样,解压会利用install安装,不详细说明。
具体操作如下图所示:
图1 python sdist
图2 python install
上面介绍的是新一个模块,工作中往往需要自定义一个库,里面包含多个py文件,假设包mydemo中包含多个py文件时,只需要在setup.py中的添加属性packages即可,如:
#!/usr/bin/env python
# -*- coding:utf8 -*-
'''
Created on 2015年2月4日
@author: sqxu
'''
from distutils.core import setup
setup(
name='mydemo',
version='1.0',
author='sqxu',
author_email='sqxu@***.com',
packages = ['mydemo']
)
上面介绍了利用python setup.py sdist进行打包,使用该命令会生成一个源码安装包,初次之外还有其他常见的打包方式,如:
python setup.py sdist #源码安装包
python setup.py bdist_wininst #win下使用,生成一个exe文件,可直接利用该exe安装模块
python setup.py bdist_rpm #linux下使用,生成rpm文件
其他打包方式可以通过命令python setup.py bdist --help-formats查看。
C:\Users\sqxu\Desktop\MyDemo>python setup.py bdist --help-formats
List of available distribution formats:
--formats=rpm RPM distribution
--formats=gztar gzip ed tar file
--formats=bztar bzip2 ed tar file
--formats=ztar compressed tar file
--formats=tar tar file
--formats=wininst Windows executable installer
--formats=zip ZIP file
--formats=msi Microsoft Installer
四、自定义模块的制作-setuptools
(未完待续)
0 0
- cxfreeze打包python文件
- python打包文件
- python文件打包
- python 文件用cx_Freeze 打包
- python的打包文件egg
- Python:程序打包exe文件
- python打包生成exe文件
- python文件打包成exe
- Python打包为exe文件
- python打包成exe文件
- 将python文件打包成为exe文件
- Python应用第一波:文件打包备份
- Python脚本打包为exe文件
- py2exe打包python文件成可执行程序
- Python脚本打包为exe文件
- 使用pyinstaller打包python为exe文件
- 将python程序打包成exe文件
- 打包python至exe文件脚本
- mybatis如何在控制台输出sql语句
- visio
- 关于“1120:访问的属性xxx 未定义”错误的总结
- 第一个豫商商会移动互联平台APP掌上豫商上线
- .Net 中XML配置系统快捷键
- python打包文件
- IP地址定位
- 由单目标跟踪实现多目标跟踪的思想框架
- 二分法插队
- 关于URL编码
- c# winform的一些基础学习知识
- 兔子-ROOT
- SQLServer,仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表xx中的标识列指定显式值
- getApplication(),this,getApplicationContext()之间的区别