当前位置: 首页 > news >正文

福建省建设注册管理中心网站公司概况

福建省建设注册管理中心网站,公司概况,富库网站建设,xp系统中做网站服务器吗转自#xff1a;https://www.cnblogs.com/ibingshan/p/10334471.html Python 2.7 cython cythonize py 编译成 pyd 谈谈那些坑 前言 基于 python27 的 pyc 很容易被反编译#xff0c;于是想到了pyd#xff0c;加速运行#xff0c;安全保护 必要准备 安装cython#xff1a;…转自https://www.cnblogs.com/ibingshan/p/10334471.html Python 2.7 cython cythonize py 编译成 pyd 谈谈那些坑 前言 基于 python27 的 pyc 很容易被反编译于是想到了pyd加速运行安全保护 必要准备 安装cythonpin install cython 下载安装VCForPython27.msi Cython documenthttps://cython.readthedocs.io/en/stable/src/userguide/source_files_and_compilation.html 假如有以下目录结构 myPackage/ __init__.py myModule.py subFolder/ __init__.py subModule.py setup.py  --这是用来 build python extension 的也就是 pyd setup.py代码 1 import setuptools # important2 from distutils.core import setup3 from Cython.Build import cythonize4 from distutils.extension import Extension5 extensions []6 extensions.append(Extension(myModule,[myModule.py]))7 extensions.append(Extension(subFolder.subModule,[subFolder/subModule.py]))8 9 setup( 10 ext_modules cythonize(extensions, compiler_directives{language_level: 2}), 11 12 ) 在 myPackage/ 目录下开启cmdwin系统编译pyd python.exe setup.py build_ext --inplace 编译过程如果顺利和 setup.py 代码解析 cythonize()会在 py 文件所在的相应文件夹生成 .c 或者 .cpp 文件这个取决于compiler_directives 中的一些设置参考 compiler-directives  setup.py build_ext在myPackage/目录下生成一个build文件夹里面有编译的一些中间产物最终把 pyd 复制到 py 文件所在的相应位置pyd最终复制的路径是由Extension()来决定的 Extension()它有很多参数只说代码中的参数 参数 1这个参数就是 pyd 最终被拷贝的路径在编译成功后会看到 copying build\lib.win-amd64-2.7\xxx.pyd - xxx\xxx后面的 xxx\xxx 就是Extension的第一个参数xxx.xxx 没看错这里是用点 . 来分隔简直坑而且路径的前缀是cmd运行路径如果第一个参数是*就像官方文档里面的例子一样它代表cmd运行的当前路径也就是 myPackage/ 也就是说所有 pyd 都会被拷贝到这里来 参数 2这是 py 或者 pyxCython格式的相对路径是指 cmd并非setup.py 的所在路径因为我是在 waf 的 wscript 中 执行编译的waf 会把 cmd 的路径改变到它的 build 路径下如果单独使用setup.py应该不会有这个问题 编译过程中会遇到的一些警告或者错误如果不顺利或者不完美和 setup.py 代码解析 errorunresolved external symbol init__init__ 没错__init__.py 似乎在这里不能被编译成 pyd所以可能要编译成 pyc 或者干脆不编译 errorunable to find vcvarsall.bat 出现这个错误只会看到 .c 或者 .cpp看不到 pyd 网上大多数的解决方法http://www.cnblogs.com/lazyboy/p/4017567.html 下面是我另外找到的方法链接https://stackoverflow.com/questions/53172601/error-unable-to-find-vcvarsall-bat-when-compiling-cython-code 1.确保安装VCForPython27.msi 2.确保更新或者安装 Python 的 setuptools 安装或者更新 setuptoolspin install -U setuptools 3.在 setup.py 中的第一行加 import setuptools最新版的 setuptools 会自动找到 vcvarsall.bat FutureWarning Cython directive language_level not set, using 2 for now (Py2). This will change in a later release! 在compiler_directives中指定cythonize( compiler_directives {language_level: 2} ) is not a valid module name...Cython.Compiler.Errors.CompileError:  注意文件的路径文件夹命名不要有中文不要是纯数字不要有非法字符 py 和 pyx 编译成 pyd 的注意点 如果编译的是 .pyx 而且这些文件中 include 一些自定义的头文件那么 setup() 还要加 library 相关的参数就像我们编译 c 语言一样这里只谈 py 所以不多说 pyd 的使用 就像 pyc 一样正常使用如果python安装了 PySide 或者 PyQt可以到它们的目录下看看它们的主要模块也是 pyd而且 __init__.py 没有相应的 pyd import xxx from myPackage import myModule import myPackage.myModule as m from myPackage.subFolder import subModule pyd for maya 似乎用以上的流程编译出来的 pyd 不能在 maya 中 import似乎要用编译maya的一致的VS版本来编译参考链接https://stackoverflow.com/questions/53683874/how-to-import-pyd-files-into-maya 不过 maya 确实是可以 import 的 pyd 的因为 maya 自身就集成了 PySide 的 pyd 模块所以只要接下来要找出怎么编译 maya 的 pyd 方法或许 maya PySide 是用 C 来直接编写然后编译成 pyd不过 cythonize 已经把 py 生成了 c 或者 cpp现在还不确定问题出在哪个阶段。转载于:https://www.cnblogs.com/Joetao/articles/10342796.html
http://www.pierceye.com/news/359242/

相关文章:

  • 莱州网站制作友情链接交换形式
  • 如何编写网站做美食类网站现状
  • 一站式推广平台做家装模型的效果图网站
  • 企业电子商务网站开发实验报告苏州建筑设计公司排名
  • 网站的优化与网站建设有关吗网站先做移动站在做pc站可行吗
  • 河北网站制作公司电话建设网站的情况说明
  • 高校网站平台建设wordpress小工具不见了
  • 网站建设 会计处理北京垡头网站建设公司
  • 唐山网站制作案例网站建设中标
  • 网站开发培训费济南网络优化推广公司哪家好
  • 谷歌网站优化可以做物理题的网站
  • 公司的网站建设是什么部门品牌餐饮加盟网站建设
  • 深圳品牌网站建设公司哪家好学建网站 必须学那些知识
  • 国内设计网站推荐山东省建设安全生产协会网站
  • 南京专业网站开发团队如何用手机建网站
  • 在婚恋网站上做红娘怎么样正规网络推广服务
  • 网络媒体设计是做什么的西安网站优化公司
  • 有项目去哪里找投资人河南网站优化排名
  • 灯塔建设网站网上做流量对网站有什么影响
  • 网站模板 黑色建设网站安全措施
  • 临沂企业网站建设珠海建设网站的公司哪家好
  • 中国网站建设公司排行榜网站建设精美模板
  • 国家对于学校网站建设深圳网站建设公司网络服务
  • 承德建站公司福田庆三整鼻子好吗
  • 域名和网站关联seo优化是指
  • 爱站网官网关键词周口网站关键词优化
  • vps网站管理器阿里云如何做网站
  • 网站是什么意思例如营销型网站文案怎么做
  • 五莲县网站建设wordpress去掉链接中的吗
  • 贡井区建设局网站建网是什么