zoukankan      html  css  js  c++  java
  • 使用cython把python编译so

    1.需求

    为了保证线上代码安全和效率,使用python编写代码,pyc可直接反编译,于是把重要代码编译so文件

    2.工作

        2.1 安装相关库:

    pip install cython
    yum install -y gcc python-devel

       2.2 创建setup.py

    #!/usr/bin/env python
    # coding=utf-8
    from distutils.core import setup
    from Cython.Build import cythonize
    setup(
        ext_modules = cythonize("xxxx.py")
    )

     2.3 运行

    root@868aec72d1a4:/xxx/xxx/xxx# python setup.py build_ext
    Compiling xxx.py because it changed.
    [1/1] Cythonizing xxx.py
    running build_ext
    building 'lib.xxx' extension
    creating build
    creating build/temp.linux-x86_64-2.7
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c xxx.c -o build/temp.linux-x86_64-2.7/xxx.o
    creating build/lib.linux-x86_64-2.7
    creating build/lib.linux-x86_64-2.7/lib
    x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/xxx.o -o build/lib.linux-x86_64-2.7/lib/xxx.so

    会在当年目录上传build目录,结构如下:

    root@868aec72d1a4:/spider/codes/lib# tree build/
    build/
    |-- lib.linux-x86_64-2.7
    |   `-- lib
    |       `-- xxx.so
    `-- temp.linux-x86_64-2.7
        `-- xxx.o
    
    3 directories, 2 files

    2.4 获取so文件即可

  • 相关阅读:
    TDengine 基本操作
    Spark 提交运行 保存结果 流程控制
    Redis 分布式锁
    Linux 基础命令
    HIVE 分桶模式
    EX: 这里是收集的面试题
    使用python批量创建 mysql 表
    Navicat写MySQL触发器,用来同步表
    NXOpen 创建体获取所有边、边端点信息,过虑竖边倒圆水平边倒角
    NXOpen遍历实体移除参数和改色
  • 原文地址:https://www.cnblogs.com/sevck/p/7154623.html
Copyright © 2011-2022 走看看