电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python項目打包成二進制的方法

瀏覽:4日期:2022-06-30 17:43:11
Python項目打包

python本身是一種腳本語音,發布的話,直接發布源代碼就可以了,但是,可能有些公司并不想發布源代碼,那么,就涉及到打包了,網上有很的打包教程,其實我也沒有認真去研究,因為我只想簡單點,所以,我打算直接編譯成pyc二進制文件來發布,就可以了。

問題

編譯成二進制文件(*.pyc)之后,文件名都變了,模塊之間怎么引用?網上的例子,大都是對單個文件編譯的介紹,對整個目錄編譯的話,也都是輸出到相應的文件夾下,需要單獨抽取出來,發布。

解決問題

一般編譯之后的文件命名為:比如我的源文件為test.py,編譯后輸出到__pycache__文件夾下test.cpython-37.pyc,要保持模塊引用不改變,那么必須在編譯之后重命名為test.pyc文件,批注:37是因為我使用的python版本為3.7.4所以含有37,其他版本要做相應的調整。需要按照原來的項目目錄結構輸出pyc文件才能保證模塊之間調用沒有問題。

編碼實現

import osimport shutilimport compileallfrom pathlib import Pathversions = '.cpython-37'pycache = '__pycache__'build_dir = 'build'root = os.getcwd()print('正在編譯文件...請等待...')compileall.compile_dir(root) # 編譯build = Path(root,build_dir)if build.exists(): print('正在移除build目錄...請等待...') shutil.rmtree(build)print('正在復制文件...請等待...')shutil.copytree(root,build) # 復制文件到build目錄for root, dirs, files in os.walk(build): # 開始遍歷文件# root 表示當前正在訪問的文件夾路徑# dirs 表示該文件夾下的子目錄名list# files 表示該文件夾下的文件list# 遍歷文件for f in files: src = os.path.join(root, f) if f.endswith('.py'):os.remove(src) elif f.endswith('.pyc'):upper_dir = root.replace(pycache,'')dst = os.path.join(upper_dir,f.replace(versions,''))shutil.copy(src,dst)for root, dirs, files in os.walk(build): # 移除緩存文件夾 print('正在移除緩存文件...請等待...') if root.endswith(pycache):shutil.rmtree(root)print('打包完成...請查看目錄:'+str(build))

注意文件中版本號的調整,基本上是通用的,所有的python項目都可以用拿來就用。代碼很簡單,但是很實用。

牛人之所以是牛人,是因為你現在在踩的坑,他曾經都已經踩過了。

以上就是Python項目打包成二進制的方法的詳細內容,更多關于Python項目打包成二進制的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 流量卡中心-流量卡套餐查询系统_移动电信联通流量卡套餐大全 | 印刷人才网 印刷、包装、造纸,中国80%的印刷企业人才招聘选印刷人才网! | uv固化机-丝印uv机-工业烤箱-五金蚀刻机-分拣输送机 - 保定市丰辉机械设备制造有限公司 | nalgene洗瓶,nalgene量筒,nalgene窄口瓶,nalgene放水口大瓶,浙江省nalgene代理-杭州雷琪实验器材有限公司 | 新中天检测有限公司青岛分公司-山东|菏泽|济南|潍坊|泰安防雷检测验收 | 旋片真空泵_真空泵_水环真空泵_真空机组-深圳恒才机电设备有限公司 | 英国公司注册-新加坡公司注册-香港公司开户-离岸公司账户-杭州商标注册-杭州优创企业 | 厚壁钢管-厚壁无缝钢管-小口径厚壁钢管-大口径厚壁钢管 - 聊城宽达钢管有限公司 | 「安徽双凯」自动售货机-无人售货机-成人用品-自动饮料食品零食售货机 | 船用锚链|专业锚链生产厂家|安徽亚太锚链制造有限公司 | 河北凯普威医疗器材有限公司,高档轮椅系列,推车系列,座厕椅系列,协步椅系列,拐扙系列,卫浴系列 | 两头忙,井下装载机,伸缩臂装载机,30装载机/铲车,50装载机/铲车厂家_价格-莱州巨浪机械有限公司 | 炉门刀边腹板,焦化设备配件,焦化焦炉设备_沧州瑞创机械制造有限公司 | 组织研磨机-高通量组织研磨仪-实验室多样品组织研磨机-东方天净 传递窗_超净|洁净工作台_高效过滤器-传递窗厂家广州梓净公司 | 板式换网器_柱式换网器_自动换网器-郑州海科熔体泵有限公司 | 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | ALC墙板_ALC轻质隔墙板_隔音防火墙板_轻质隔墙材料-湖北博悦佳 | 水质传感器_水质监测站_雨量监测站_水文监测站-山东水境传感科技有限公司 | 穿线管|波纹穿线管|包塑金属软管|蛇皮管?闵彬专注弱电工程? | 球磨机,节能球磨机价格,水泥球磨机厂家,粉煤灰球磨机-吉宏机械制造有限公司 | 高压管道冲洗清洗机_液压剪叉式升降机平台厂家-林君机电 | 工业硝酸钠,硝酸钠厂家-淄博「文海工贸」 | 快速门厂家批发_PVC快速卷帘门_高速门_高速卷帘门-广州万盛门业 快干水泥|桥梁伸缩缝止水胶|伸缩缝装置生产厂家-广东广航交通科技有限公司 | 高低温试验箱-模拟高低温试验箱订制-北京普桑达仪器科技有限公司【官网】 | 福尔卡(北京)新型材料技术股份有限公司| 锂电池生产厂家-电动自行车航模无人机锂电池定制-世豹新能源 | 北京网站建设-企业网站建设-建站公司-做网站-北京良言多米网络公司 | 螺旋丝杆升降机-SWL蜗轮-滚珠丝杆升降机厂家-山东明泰传动机械有限公司 | 硅PU球场、篮球场地面施工「水性、环保、弹性」硅PU材料生产厂家-广东中星体育公司 | 德国EA可编程直流电源_电子负载,中国台湾固纬直流电源_交流电源-苏州展文电子科技有限公司 | 工作服定制,工作服定做,工作服厂家-卡珀职业服装(苏州)有限公司 | 湖南自考_湖南自学考试网| 长沙网站建设制作「网站优化推广」-网页设计公司-速马科技官网 | 气胀轴|气涨轴|安全夹头|安全卡盘|伺服纠偏系统厂家-天机传动 | 振动时效_振动时效仪_超声波冲击设备-济南驰奥机电设备有限公司 北京宣传片拍摄_产品宣传片拍摄_宣传片制作公司-现像传媒 | 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | 伸缩器_伸缩接头_传力接头-巩义市润达管道设备制造有限公司 | 千淘酒店差旅平台-中国第一家针对TMC行业的酒店资源供应平台 | 品牌设计_VI设计_电影海报设计_包装设计_LOGO设计-Bacross新越品牌顾问 | 深圳善跑体育产业集团有限公司_塑胶跑道_人造草坪_运动木地板 | 档案密集架_电动密集架_移动密集架_辽宁档案密集架-盛隆柜业厂家现货批发销售价格公道 |