【Python加密】-生成.pyc/.pyd文件

Python有py、pyc、pyw、pyo、pyd等文件格式,其中除py其他格式起到了不暴露源码的作用,相当于c语言中的动态库。

1,Python生成pyc文件


1.1生成单个pyc文件

对于py文件,可以执行下面命令来生成pyc文件,转化后的.pyc文件将在当前目录的__pycache__文件夹下.

python -m compileall <dir>

另外一种方式是通过代码来生成pyc文件,同样转化后的.pyc文件将在当前目录的__pycache__文件夹下.

import py_compile
py_compile.compile('/path/to/foo.py')


1.2批量生成pyc文件

命令行为:

python -m compileall <dir>

针对一个目录下所有的py文件进行编译。python提供了一个模块叫compileall,具体请看下面代码:

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

2,Python生成pyd文件

利用pip安装Cython安装

pip install Cython --install-option="--no-cython-compile"

或者自己下载安装:https://pypi.python.org/pypi/Cython/

写一个测试用的py文件a.py

  1. def test():

  2. print "Hello World!"

创建setup.py文件

  1. from distutils.core import setup

  2. from Cython.Build import cythonize

  3. setup(name = 'Hello world',

  4. ext_modules = cythonize("a.py"))

编译

 python setup.py build //生成.c文件

 python setup.py install //生成pyd文件,根据运行过程提示,pyd被生成到了python根目录下Lib\site-packages中,可以直 接使用

3.Python生成pyd文件(2)

安装cython

pip install cython

如果安装没提示错误信息说明,上一步环境正确,并且cython安装正确。

安装easycython

试了一些方法和库,这个最方便只要一行代码就可以搞定。
https://github.com/cjrh/easycython

pip install easycython

这个模块也会自动安装依赖的cython,如果上步安装cython失败,也可以直接尝试安装easycython来试。

转换步骤

将.py文件重命名为.pyx
运行命令

easycython *.pyx

上面会将当前文件夹下所有的.pyx文件生成为.pyd
如果只生成单个的main.pyx
main.pyx内容:

def test(): print('Hello sanfenzui!')

开始生成:

easycython main.pyx

生成文件main.cp35-win_amd64.pyd
手动将其重命名为main.pyd
注意:这里重命名时去掉“.cp35-win_amd64”不要更改前面的名字,否则不能正常引用
然后python环境下
import main #保证当前文件夹下没有main.py或者mian.pyc
main.test()

参考: 

https://docs.python.org/3/library

.py源码转换成.pyd通过cpython(win7_64_python35环境) - 三分醉博客

  • 10
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arthur.AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值