<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <p></p>
讯享网
当有些模块的代码需要一定的保密性,这个时候就需要考虑pyc和pyd文件了。今天就好好琢磨一下这两种文件的生成和使用方法。让自己的知识能够朝着商业化的方向再前进一步。
首先编辑名称为的测试文件
讯享网
然后在另一个文件中采用模块,运行文件。
完毕以后查看项目文件夹下名称为的文件夹,其中名称为的文件便是生成的pyc文件。

讯享网
将其单独放入新的项目中,直接引用即可(需要将文件名称改为原来的模块名,即应该将文件名称中“.cpython-38”字符删除)。
不过,需要说明的是,如果打开pyc文件可以发现,有部分源代码还是可以看见的。

以上,便是单个文件编译成*.pyc文件的全过程。还有批量编译的,目前我个人还没有这样的需求,等用到了再说(如果文件不是很多的话我还是愿意逐一编译)。
另外还有一个问题,当前编译的这个模块没有引用到其他模块,如果编译的模块引用到了其他模块,那么有没有其他需要特别注意的问题?这也是需要留意的。
pyd文件的生成要比pyc的生成过程要麻烦一些。
首先需要创建文件
讯享网
然后在terminal控制台执行如下指令进行编译,我是控制台所在文件路径切换到当前目录下的(Pycharm里面其实不用切换,直接就在当前项目所在目录下)

我在执行上面这一句的时候给出了如下报错:
Microsoft Visual C++ 14.0 or greater is required.
这时需要在微软官网下载"Microsoft C++ Build Tools"这个工具(具体方式可以参考这里),然后安装如下组件:

最后,再重新在控制台运行上述命令即可。pyd文件将会出现在项目文件夹下的build——>lib.win-amd64-cpython-38文件夹里,我这边的名称是
必须注意,pyd文件的使用和pyc有些不同,使用的时候必须将pyd文件的名称改为原来对应的py文件的名称(后缀不用改),否则会出现引用不了的情况!
首先,pyd文件的保密性要更好一些。下面的截图是pyd文件打开后的情形。完全看不到源码。

其次,个人感觉pyd就像是仅仅把py文件加密而已,即使源文件(*.py)引用了其他模块,也不要紧。这种方式是我比较喜欢的。点赞!
这一节主要来自这里。本来我没有打算搬运的,但是看到自己之前收藏的一些文章现在居然要收费,心中一紧,赶紧该搬运搬运吧。感谢原作者。
首先Python环境要先安装cython模块:
讯享网
如下是主代码,文件名:py2pyd.py
批处理测试文件:
讯享网
接下来在Pycharm中做成外部工具就好了,这一部分在捣置pyqt5的的教程里有很多,就不细说了。只把下面和本文相关的设置说一下就好。再次感谢原作者。

按如上进行设置,
实参:D:PYTHON oPYDpy2pyd.py one nodel xxxxx
路径:D:PYTHON oPYD根据你自己的位置更改一下。
工作目录:xxxxx
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/147976.html