zoukankan      html  css  js  c++  java
  • python的py文件生成pyd文件,pycharm直接调用pyd文件

    这段时间做接口自动化测试,用python直接调用接口,sign值是经过系列复杂算法加密后生成的字符串,保密级别高,不能直接以py文件供大家调用~~

    pyc文件呢,很容易就被反编译了,pyd文件和一般dll类似,不容易被反编译。

    生成pyd很容易,网上百度一堆堆,但是调用pyd文件会遇到好多错误。

    在此贴一下生成pyd到调用pyd文件的方法供参考:

     1.新建一个setup.py文件:

    # 用cpython生成pyd方式//需要安装cpython和vs2015(安装vs时只安装c++即可)
    # 这种方式生成的pyd文件区分系统位数,比如32位生成的只能用于32位,64位则提示不能允许
    from distutils.core import setup
    from Cython.Build import cythonize
    # name随便写,py文件要正确
    setup(name='api_sign', ext_modules=cythonize('api_sign.py'))

    2.执行命令生成pyd文件:

    python setup.py build_ext --inplace
    """
    执行后会生成pyd文件,可修改文件名,但不能去掉和py文件相同的部分
    引用该pyd文件需要放入模块下,通过模块引入该文件,不能直接引用
    """

    3.调用pyd文件:

    from Encryption import api_sign as i
    a, b = i.encrypt('12', '213')
    print(a)
    print(b)
     

    api_sign.py文件是需要生成pyd的文件
    生成后的pyd文件需要放到模块下引用,不能直接引用

    当引用pyd文件报如下错误时:

    1.ImportError: DLL load failed: 找不到指定的模块

    2.找不到指定程序

    ……

    解决流程:

    1.确认引用的路径是否正确

    2.确认引用的pyd是否引用了需要安装的模块,如果是,需要把引用的pyd路径也指定(sys.path.append("路径"))

    3.若上面这些步骤还不行,直接把python升级到3.7.4最新版本

    坑爹的…………
    我的python是3.6.X的,一直引用pyd文件提示找不到模块~~断断续续折腾了几周没搞定~~

    后来用depends看引用dll间的关系,直接报错找不到python37.dll,尝试升级python试试,

    结果升级后就调用成功~~~无语~无语~

  • 相关阅读:
    阿里云help
    Docker 介绍和使用
    LoadRunner 技巧之 IP欺骗
    LoadRunner 技巧之THML 与 URL两种录制模式分析
    LoadRunner使用动态链接库技术
    浅谈软件性能测试中关键指标的监控与分析
    如何准备性能测试数据
    LoadRunner检查点使用小结
    LoadRunner性能测试样例分析
    web性能测试基本性能指标
  • 原文地址:https://www.cnblogs.com/drewgg/p/11459052.html
Copyright © 2011-2022 走看看