前言

  最近这些天很多事情,流花展馆要陆续开始动工了。
  工作室搬到4楼的小地方去了,为了准备”后事”,还列了个框架,和每个成员私聊,真的是浪费了大量无谓的时间。
  这周三还有党支部的宪法擂台赛,花了不少时间去准备(其实我只是当天复习了下,真的很水了)
  今天比赛群里,老师在祝贺获得国家奖学金的同学,那里面没有提到我,莫名觉得沮丧…….
  或许印证了上次写的优越感,又被打碎一地了,所以有点失落…

  最近在看的教程分别有

  • Pluralsight - Python for Maya Fundamentals
  • Python For Maya - Artist Friendly Programming

  第一部已经看完了,第二部看了前两部分。
  真·没想到两个教程的作者居然是一个人,此人居然进了pluralsight!!!
  第二部教程很明显时间久远一点的,那里推荐使用python专业IDE pycharm,遭到我个人一丝丝的不屑(:з」∠)(手动滑稽)
  后来转去看pluralsight的教程,居然发现这个大神也转了VScode,这让我很兴奋(づ。◕‿‿◕。)づ
  不过后面看了大神操作的VScode方法,感觉不符合我的个人情况(╥╯^╰╥)

VScode python 支持

  其实要让VScode支持Python代码提示不复杂
  安装python环境,然后安装VScode提供的Python插件
安装VScode python插件
  这就可以轻松在VScode写Python代码了。
  下面就是利用 VScode的intellicense 实现自动补全代码功能。

Maya Python intellicense

  pluralsight的教程后面是下载了anaconda,通过anaconda提供的python2.7平台来实现的。
  但是当我下载这个包之后,我发现它居然有500M,当我安装完了之后,我发现它居然占用4个G的磁盘空间,原谅我的128GSSD,空间不足,卸了卸了。
  但是没有python环境如何实现python代码的运行呢?
  用脑子想一下Maya是怎么实现python代码的呢?
  通过外网的一通搜索,我发现maya其实内置了python2.7环境,只需要将其引导到VScode来执行,就不需要额外安装庞大的Python环境。
  更何况CG界的python版本一直没有升级,所以用maya内置或许会更好。
  maya的python环境shell名称为mayapy.exe
Maya自带python
  要让VScode支持Maya 的 python 编程需要下载相关的开发资料包。(关于pycharm要如何设置可以参照这个文章
下载Devkit
  解压了之后,可以将devkit文件夹的内容覆盖到Maya安装目录的devkit中
目录
  在VScode的首选项的json可以添加下面的代码 - 资料参考

1
2
3
4
"python.autoComplete.extraPaths": [
"C:/Program Files/Autodesk/Maya2018/devkit/other/pymel/extras/completion/py",
],
"python.pythonPath": "C:/Program Files/Autodesk/Maya2018/bin/mayapy.exe",

  这样就可以实现和教程一样的效果
loading
loading

VScode 快速代码提示

  好像代码提示的问题已经解决了,其实不然,在当前版本的VScode中加载巨慢无比,起码要等7、8秒以上,代码提示才会出来。
  为了解决这个问题,我真的查阅无数的资料,踏遍了github的各个关于 intellisence和autocomplet 缓慢的问题
  但是能够在根本上解决我当前问题的回答,少之又少。
  我甚至看到一个2016年的问题,到了2018年有人回复出现问题,并表示两年都还没有解决而令人非常失望。
  这当中确实绕了无数的弯路,甚至一度认为是pylint的检查问题,而试图让Mayapy安装pylint。
  但是经过研究,pylint并不是根本原因,毕竟使用不同版本的python环境还是会出现这个巨慢无比的问题。
  后来我甚至开始研究VScode的CPU调度,并且发现了一部分问题的根源。
开启VScode的CPU调度
VScode的autocomplete调度

  gif已经经过了加速处理,但是通过上面的gif,相信也能感受我内心的无奈与崩溃,如果是这种速度,那代码提示就形同虚设。
  另外pluralsight的教程也有提到Maya也是自带代码提示的,但是可能是因为我的笔记本比较渣吧,我一旦开启提示,提示速度也和VScode不相上下……
  因此这样无解的问题,我认为pycharm也是无力回天的,所以我并没有尝试下载pycharm解决问题。

解决方案

  后来我看到VScode的python autoComplete设置里面不仅仅只有extraPaths可以设置,还有preloadModules来加快加载速度的功能。
  因此我以这个为突破口找到了解决问题核心的github问题
  这个问题也是最近这几天才有了新的突破。
VScode官方工作人员回复
  也就是这是language server的锅,禁用Jedi方案,采用另一个语言配置,就可以解决问题。
  我尝试了一下,禁用了Jedi之后 VScode 会自动下载 Microsoft 的一个语言系统,安装完毕之后,再次尝试。
  谢天谢地,这次快了非常多。
禁用Jedi的提示速度
  从gif图可以感受到,虽然这一次也需要loading一下,但是速度真的是质的飞跃!!!~

总结

  我目前真的是对VScode情有独钟,不过不管怎么说,VScode也确实有它的魅力。
  如此一来,我就可以通过VScode,既可以写MEL、VEX有可以完成Python的TD工作(∩_∩)