美文网首页
基础知识 -- Python方面

基础知识 -- Python方面

作者: 爱修仙的道友 | 来源:发表于2019-04-18 18:24 被阅读0次

PYTHON 运行机制介绍

  1. 编译器
    • Cython 针对数值计算
      将python写的代码.py文件,通过Cpython编译器编译变为C语言代码,加速执行。。
      Cython 使得 Python 语言的 C 扩展与 Python 本身一样简单。Cython 是基于 Pyrx 的源代码转换器,但支持更多的边缘功能和优化。Cython 语言是 Python 语言的一个超集(几乎所有的 Python 代码是有效的)还支持可选的静态类型来调用 C 函数,声明 C 类型变量和类的属性。这允许编译器从 Cython 代码生成非常高效的 C 代码。这使得 Cython 编写外部 C/C++库代码的理想语言,和快速的 C 模块,提高Python 代码的执行速度。广泛应用于数值计算包的编译,如 numpy 等,编译器可以通过 pip 实现:
      pip   install cython
      
image.png

该编译器会引入 GIL(全局解释锁)问题,CPU 密集型程序建议使用 python 调用动态链接库的方式提升运行效率

  • PyPy 正确情况下
    python 源代码 .py====> python 字节码 .pyc ======>运行虚拟机
  • Jython
    首先将 python 编译为基于 java 字节码的字节码文件,然后在 java 虚拟机 jvm 上运行 java 字节码。
  • Ironpython
    将 python 编译为基于.NET 的 CLI 的中间语言文件,然后在.NET 框架上执行程序。
  1. 字节码和虚拟机
    pyc 文件是 py 文件编译后生成的字节码文件(byte code),pyc 文件经过 python 解释器最终会生成机器码运行。所以 pyc 文件是可以跨平台部署的,类似 Java 的.class 文件。Pyc 文件可以打包分发从而避免源代码被暴露出来。python 先把代码(.py 文件)编译成字节码,交给字节码虚拟机,然后虚拟机会从编译得到的 PyCodeObject 对象中一条一条执行字节码指令,并在当前的上下文环境中执行这条字节码指令,从而完成程序的执行。
    字节码对象的创建时机是模块加载的时候,即 import 时,执行过程如下:
    1、执行 python main.py 会对 main.py 进行编译成字节码并解释执行,但不会生成
    test.pyc
    2、如果 main.py 中加载了其他模块,如 from mytest import myfun,那么 python会对 myfun.py 进行编译成字节码,生成 myfun.pyc,然后对字节码解释执行。
    3、如果想生成 main.pyc,我们可以使用 python 内置模块 py_compile 来编译。也可以执行命令 python -m main.py 这样,就生成了 main.pyc
    4、加载模块时,如果同时存在.py 和.pyc,python 会使用.pyc 运行

  2. 程序打包

  • 利用 setuptools 实现本地文件安装(egg 打包)
    当我们生成.pyc文件后,需将其进行egg打包
    当我们代码调试完成后,需要在项目目录下写setup.py脚本,
    并在项目目录下执行python setup.py install, 会生成dist目录,并包含.egg文件,可以将.egg文件上传到pipy,可以通过pip install xxx 进行下载
  • wheel 打包
    首先,你需要安装 wheel 包:
    pip install wheel
    下一步,我们将使用 unidecode 包来创建我们的第一个 wheel,因为当我在写本文
    的时候,我们的 wheel 包还没有创建出来,接下来我会在多个项目中使用这个包。
    pip wheel --wheel-dir=my_wheels Unidecode
    在 my_wheels 文件夹中有了名字为 Unidecode-0.04.14-py26-none-any.whl 的
    wheel。.whl 文件有一点与.egg 文件相似:实际上它们都是“伪装的”.zip 文件。如
    果你将
    .whl 文件名扩展改为*.zip,你就可以使用你的 zip 应用程序打开它,并且可以
    查看它包含的文件和文件夹。

高阶编程

请大家移步到相关教学网站去深入学习

其他知识点

  1. 虚拟环境--沙箱机制
  • virtualenv


    image.png
image.png
  • Pycharm 自动使用虚拟环境
    项目中一般如此使用


    image.png
  1. pip
  • 安装与卸载
    pip install xxx == 2.1.7
    pip uninstall xxx
  • 环境配置
    pip freeze > requirements.txt
    pip install -r requirements.txt
  1. init.py
  • ALL = ['myfun','tesx'] 可以外部调用的方法
  • private 私有方法
  • 为空,默认可以调用所有方法

相关文章

网友评论

      本文标题:基础知识 -- Python方面

      本文链接:https://www.haomeiwen.com/subject/aqltgqtx.html