Python作为一种解释型编程语言,需要解释器来编译并执行Python代码。

测试Python

对于Linux和Mac操作系统,均已预装Python。而在Windows下,可以使用安装包或者直接解压版zip文件。

使用以下命令,可以查看当前Python版本:

$ python --version

设置动态调用库

新版本的Vim已经默认支持Python。可以使用:version命令,确认是否包含“+python/dyn”和“+python3/dyn”特性。

其中dyn,即dynamic,表示可以通过'pythondll'和'pythonthreedll'选项动态调用Python库。

使用set pythonthreedll?命令,可以查看当前动态调用的Python库。以下为Fedora31下的默认设置:

set pythonthreedll=libpython3.7m.so.1.0

如果您的Vim不支持动态调用Python库,那么以上命令将会报错。

如果您仅是下载并解压程序包(而不是进行安装),那么同时需要设置pythonthreehome选项。例如以下命令,在Windows下设置Python3环境:

set pythonthreehome=C:toolsPython3
set pythonthreedll=C:toolsPython3python38.dll

以下命令,可以在Mac下设置Python环境:

" for python 3.X
set pythonthreehome=/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7
set pythonthreedll=/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/libpython3.7m.dylib
" for python 2.X
set pythonhome=/System/Library/Frameworks/Python.framework/Versions/2.7
set pythondll=/System/Library/Frameworks/Python.framework/Versions/2.7/Python

请注意,在您的环境中Python所处的路径可能会不同。请在操作系统中使用以下命令,查看Python系统路径:

$ python -c "import sys; print(sys.path)" 

请使用以下命令,查看更多帮助信息:

:help python-dynamic
:help 'pythonhome'
:help 'pythonthreehome'

设置编译器

使用以下命令,设置'makeprg'选项为python3命令:

:set makeprg=python3 %

通过在vimrc文件中增加以下自动命令,可以为Python源码文件设置编译快捷键:

augroup make_pythonau!au FileType python set makeprg=python3 %au FileType python map <buffer> <leader><space> :w<cr>:make<cr>
augroup end

编译Python代码

使用以下命令,将根据'makeprg'选项编译并执行Python文件:

:make

如果编译出现错误,将在QuickFix中显示错误列表,并自动跳转到第一个错误处:

启用以下内置的编译器,再执行:make编译命令,报错信息将被整合为一行:

:compiler pyunit

如果希望在编译时保持当前光标位置不变,那么可以使用以下命令:

:make!

使用:cw命令,将打开quickfix窗口。使用:cp命令,跳转到上一个错误;使用:cn命令,跳转到下一个错误。关于QuickFix操作的更多信息,请参阅QuickFix章节。

在修复错误并成功编译之后,将显示命令输出:

使用以下命令,将解释执行当前文件:

:!python3 %

如果执行不带任何参数的python3命令,那么将进入交换模式的python shell,您可以在其中直接执行python命令:

:!python3

使用以下命令,可以退出交换模式的python shell:

import sys; sys.exit()

您也可以直接使用Vim内置的:python3命令来执行代码:

:py3 print('hello world')

Ver: 2.0 | YYQ<上一篇 | 目录 | 下一篇>

mac vim python3_VIM学习笔记 编译源码(Compile Code)-Python相关推荐

  1. sheng的学习笔记-Vector源码分析

    概述 Vector底层也是数组,跟ArrayList很像(先看下ArrayList,再看Vector会很轻松),ArrayList可参考下文,并且由于效率低,已经被淘汰了,大概瞅瞅得了 sheng的学 ...

  2. android源码编译 简书,android学习笔记之源码编译

    编译环境 1.需要Ubuntu 64bit,建议Ubuntu14.04 64-bit 2.安装openJDK7 $ sudo apt-get update $ sudo apt-get install ...

  3. dubbo学习笔记 一 源码编译

    前面学习了netty和rocketmq,当然前面的文章还会继续更新,继续往下写 2016 没几天了,我打算写下dubbo 2017 继续深入源码,大家有啥问题 都可以一起来讨论 源码搭建 下载源码 同 ...

  4. as工程放到源码编译_方舟编译器学习笔记2 源码编译

    根据方舟官方文档编译了方舟编译器的源码,在这里简单谈谈其源码的编译过程: 1.操作系统环境: 64位版本的Ubuntu(官方推荐Ubuntu 16.04).我自己本身就有Ubuntu 16.04的虚拟 ...

  5. yolov1-v5学习笔记及源码解读

    目录 深度学习网络分类 评价指标 原理 yolov1 yolov2 yolov3 yolov4 yolov5 源码解读(v3为例) 深度学习网络分类 深度学习经典检测方法 通常分为 two-stage ...

  6. 狂神说SpringCloud学习笔记(附带源码和笔记)

    狂神说Spring Cloud Netflix笔记-01(服务注册与发现) 狂神说Spring Cloud Netflix笔记-02(Eureka集群的搭建 ) 狂神说Spring Cloud Net ...

  7. PixHawk学习笔记 之 源码浅析——mc_pos_control.cpp——task_main

    注意:基于"Firmware-1.6.0rc1" 献上固件源码分享链接:https://pan.baidu.com/s/1kUPocmF 密码:j55a 自己边学边写的,一定有错, ...

  8. Opencv学习笔记 - imread源码解读

    一.打开图片流程分析 1.读取图片头,进行解码器的寻找 2.根据参数flags,确定图像通道和是否缩放 3.给解码器指定缩放参数和源 4.使用解码器读取图像的头,确保没有问题,失败则输出错误并返回 5 ...

  9. SLAM学习笔记 - ORB_SLAM2源码运行及分析

    参考资料: DBow2的理解 单目跑TUM数据集的运行和函数调用过程 跑数据集不需要ros和相机标定,进入ORB_SLAM目录,执行以下命令: ./Examples/Monocluar/mono_tu ...

最新文章

  1. 再见,Python!!
  2. 皮一皮:叛徒可耻!!!
  3. 原型模式(ProtoType) - Java里的对象复制
  4. java readline 实现_基于自定义BufferedReader中的read和readLine方法
  5. multiselect多选下拉框
  6. Python提示错误 module 'request' has no attribute 'urlretrieve'
  7. redis-cli 链接redis命令
  8. 通过解析器向DNS服务器发出查询
  9. word转pdf公式乱码_word转换pdf公式乱码怎么办
  10. vivado linux使用教程,Vivado2017.4下载|Xilinx Vivado 2017.4 最新版(含使用教程)下载...
  11. php laravel手册,Laravel 8.x 简体中文最新手册指南
  12. CubeMX设置STM32 Timer预分频(PSC)
  13. 微擎模块 抖音口红机 3.2.0+wap登陆1.3.0增加首页banner跳转链接
  14. 大数据、java、python、区块链、人工智能发展前景
  15. ChatGPT 是什么?
  16. QR码编码原理二(编码)
  17. 服务器sas卡的作用,英特尔IOP34x处理器介绍
  18. openh264编解码器的编译与运行
  19. 2016中国国际石墨烯创新大会展商名录抢先看
  20. 0x0000007b错误解决办法

热门文章

  1. solidity bytes 智能合约开发知识浅学(五点一)bytes基本概念
  2. 电脑配置java编译报错_java 编译错误
  3. mysql insert replace_mysql 操作总结 INSERT和REPLACE
  4. 这个外挂要上天了!教一千遍都不会的数理技巧,还不如搞懂最根本的概念!
  5. 那些拧不开瓶盖的女生全都是装的?理工男这样想......
  6. 凭自己本事单的身是一种怎样的体验?你根本配不上如此优秀的我!
  7. 虚拟ip工具_针对游戏防封换IP有用吗?
  8. 单调谐回路谐振放大器等效电路分析_手把手教你如何分析三极管电路
  9. dhcp服务器显示主机名,linux – 当我没有在dhclient.conf中定义一个时,我的DHCP服务器如何知道我的机器的主机名?...
  10. android刷新时的圆形动画_Android自定义加载圈动画效果