本篇文章为大家展示了python如何实现打包生成所以文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
<强> python3 >强安装:cython
pip3安装cython——http://mirrors.aliyun.com/pypi/simple/
<强> pip国内的一些镜像,# 8195;及# 8195;
强>
阿里云http://mirrors.aliyun.com/pypi/simple/
中国科技大学https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(豆瓣)http://pypi.douban.com/simple/
清华大学https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学http://pypi.mirrors.ustc.edu.cn/simple/<强>
强>
<强> linux >强安装:python-devel, gcc
查看gcc版本信息,有的话就不用安装了
gcc -版本
没有自行安装对应服务器版本环境的gcc编译安装python-devel
pip3安装python-devel - http://mirrors.aliyun.com/pypi/simple/
创建一个测试文件夹
mkdir so_test
so_test文件夹下创建要封装的文件测试。py
进口datetime 类数据中心(): def取得时间(自我): print (datetime.datetime.now ()) def write_data(自我): 打印(“你好XiaoBoData !“)
so_test文件夹下创建调用文件so_test。py
从测试导入数据中心 data=https://www.yisu.com/zixun/DataCenter () data.gettime () data.write_data ()
首先运行so_test保证代码可以运行成功,之后在做所以封装
so_test文件夹下创建打包文件设置。py
从测试导入数据中心 data=https://www.yisu.com/zixun/DataCenter () data.gettime () data.write_data ()
最终文件夹下如下:
执行<代码> python3设置。py build_ext 代码>
根据文件大小,编译时间不同
执行成功之后,同目录会生成一个test.c的文件和构建的文件夹,生成的所以文件就在构建/lib.linux aarch74 - 3.5目录下,服务器的环境不同生成的所以文件名也不同,生成位置都是相同的
把生成的所以文件拷贝到test.py文件存放位置即可,然后删除test.py,测试。c和构建文件夹,执行python3 so_test试试能不能成功
测试证明没有问题,加密之后的所以文件==py文件,只不过从明文变成了密文,后缀名从py变成如此,其他的都没有变,达到了代码的安全性
,
<强> pyd就是dll 强>
mytest。py和dll_test.py和上面一样
创建setupDll。py
# !/usr/bin/env python # - * -编码:utf - 8 - * distutils。核心进口设置 从Cython。建立进口cythonize distutils。扩展导入扩展 def main (): #这里为文件名可以增加多个扩展(& # 39;& # 39;[& # 39;& # 39;]) 扩展=[扩展(& # 39;mytest # 39; [& # 39; mytest.py& # 39;))) 设置(ext_modules=cythonize(扩展) if __name__==& # 39; __main__ # 39;: main ()
在pycharm的终端下输入Python setupDll build_ext,得到pyd文件
在构建文件夹下得到。pyd文件调用方式不变
# !/usr/bin/env python # - * -编码:utf - 8 - * #如果不想改变pyd路径,则需要在dll_test.py中加入: 导入系统 sys.path.append(& # 39;。/构建/lib.win - amd64 3.7/& # 39;) 从mytest导入数据中心 def main (): data=https://www.yisu.com/zixun/DataCenter () data.gettime () data.write_data () if __name__==癬_main__”: main ()
运行得到结果