浅谈python编译pyc工程--导包问题解决

yipeiwu_com6年前Python基础

利用python 编译工程,生产pyc文件

pyc文件好处:是一种二进制机器码,并且隐藏了源文件代码,但是有和py文件一样的功能(可以理解为效果一样)

所以可以将代码隐藏,便于商业价值,保护代码隐私还能和py文件一样可运行

import compileall
compileall.compile_dir(r'/path')

所以在一些情况下,需将源文件工程批量生成pyc文件来隐藏代码。

上面代码即为 批量生成pyc的脚本更改path路径为根目录即可(根目录为最顶层目录需包括所有用到的文件)

运行完毕 会在不同目录生成__pycache__目录 存放所有当前目录的pyc文件

这并没有结束

运行主函数pyc文件 会发现新错误

ImportError: No module named 'tracker.yolo'

原因是找不到文件tracker/yolo

解决方法

1.首先将所有__pycache__目录里的pyc文件全部粘贴到当前目录中

2.将所有pyc文件后缀改为与目录中py文件相同名字  比如:yolo.cpython-35.pyc--》yolo.pyc

3.将所有py文件删除

然后再运行你的主程序,解决问题

不太相信弯道超车,更欣赏仰望星空与脚踏实地

以上所述是小编给大家介绍的python编译pyc工程--导包问题解决详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【听图阁-专注于Python设计】网站的支持!

相关文章

python实现差分隐私Laplace机制详解

python实现差分隐私Laplace机制详解

Laplace分布定义: 下面先给出Laplace分布实现代码: import matplotlib.pyplot as plt import numpy as np def...

彻底理解Python中的yield关键字

彻底理解Python中的yield关键字

阅读别人的python源码时碰到了这个yield这个关键字,各种搜索终于搞懂了,在此做一下总结: 通常的for...in...循环中,in后面是一个数组,这个数组就是一个可迭代对象...

简单谈谈Python中的元祖(Tuple)和字典(Dict)

前言 本文记录了对于Python的数据类型中元祖(Tuple)和字典(Dict)的一些认识,以及部分内置方法的介绍。下面话不多说,来看看详细的介绍吧。 元祖 Tuple 特点:元祖内的数...

对Python3 pyc 文件的使用详解

什么是pyc文件 pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由...

Python实现多属性排序的方法

Python实现多属性排序的方法

多属性排序: 把需要排序的属性拿出来作为一个 tuple,主要的放前面,次要的放后面。 假如某对象有n个属性,那么先按某规则对属性a进行排序,在属性a相等的情况下再按某规则对属性b进行排...