python 中tar打包

本文介绍了一个具体的Node.js应用程序的部署过程,包括停止旧服务、删除原有安装目录、打包新版本并将其复制到指定目录、最后启动新服务等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


for file in files:
if not os.path.isfile(temp+"/"+file):
print (temp+"/"+file)
shutil.copyfile(root+"/"+file,temp+"/"+file)
filePath=fileDir+tarRealName
#停止安装目录下的node.js 进程
commend = nodeCommend %("stop",projectName+"*",projectName+"*",projectName+"*",projectName+"*")
print "停止安装目录下的node.js 进程"
print commend
os.system(commend)
print "结束关闭服务命令"
time.sleep(5)
# for root, dir, files in os.walk(install_home):
# if projectName in root:
# print root
# shutil.rmtree(root)
# for file in files:
# if projectName in file:
# os.remove(root + file)
#删除旧的安装目录和tar.gz包
print "删除旧的安装目录"
commend = "rm -fr %s%s" %(install_home,projectName+"*")
time.sleep(5)
print commend
os.system(commend)
shutil.copytree(filePath,install_home+tarRealName)
time.sleep(10)


tarName = tarRealName + ".tar.gz"
tar = tarfile.open(fileDir+tarName,"w:gz")
for root,dir,files in os.walk(filePath):
kk = root.replace(fileDir,"")+"/"
for file in files:
fullpath = os.path.join(root,file)
#,arcname=file
tar.add(fullpath,arcname=kk+file)
tar.close()
# 复制tar.gz包到download_dir目录
os.makedirs(download_dir);
msg = "复制到下载目录:"+download_dir;
print msg
shutil.copyfile(fileDir+ tarName, download_dir + "/" + tarName)
#执行启动命令
# startcommend = "forever start --minUptime 1000 --spinSleepTime 1000 -l /home/appuser/app/%s/app.js"
# startcommend = startcommend %(tarRealName,tarRealName,tarRealName,tarRealName)
print "执行启动命令"
print 'sh -x /home/jenkins/resin_jenkins/install/data_collect_init.sh start'
os.system('sh -x /home/jenkins/resin_jenkins/install/data_collect_init.sh start')
print "执行启动命令完成"
### 如何将Python项目打包tar文件 为了将Python应用程序打包并分发,通常会创建一个标准的包结构来组织项目的源代码和其他资源。对于任何想要发布或分享的Python应用来说,遵循一定的目录布局是非常重要的[^1]。 #### 创建标准的包结构 假设有一个名为`package`的简单模块,则其基本结构如下: ``` package/ │ ├── __init__.py └── ... # 其他必要的组件和子模块 ``` 其中`__init__.py`标志着该目录是一个Python包的一部分;它可能是空的或者是初始化逻辑所在之处。 #### 准备setup.py脚本 为了让其他人能够轻松安装这个软件包,在根目录下还需要编写一个叫做`setup.py`的构建脚本。此文件包含了有关程序的信息以及如何处理依赖关系等细节。下面给出了一段简单的模板代码用于说明目的: ```python from setuptools import setup, find_packages setup( name='your_project_name', version='0.1dev', packages=find_packages(), include_package_data=True, install_requires=[ 'numpy>=1.8', # 列出所需的第三方库及其版本号 ], ) ``` 这段代码指定了要被打包的名字、当前开发中的版本编号、通过自动查找的方式获取所有的内部包,并声明了外部依赖项列表。 #### 打包过程 完成上述准备工作之后就可以利用命令行工具来进行实际的操作了。进入包含有`setup.py`的那个文件夹里运行以下指令即可生成`.tar.gz`格式的源码压缩档: ```bash $ python setup.py sdist ``` 这将会读取配置参数并将整个工程按照PEP规定的形式整理好存放在新建立起来的`dist/`子目录之中。最终得到的就是可以被pip解析安装的标准形式——即带有元数据信息的.tar.gz归档文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值