从骷髅峡谷谈起, 说说 windows 10 python 开发环境

Published: 周日 26 三月 2017
By jjx

In misc.

首先是因为骷髅峡谷, 这机器买来时想装黑苹果的, 但不完美. 所以折腾了大半年后还是装回 windows 10, 本来也没有想再把它变成工作机器, 因为潜意识中 windows 不是一个很好的开发环境.

但是因为在最近计划为 c9 考虑开放 sdk 的事情, 希望用户能在 windows/macos/ubuntu 下均能使用 c9 sdk, 所以试着重新搭建了一下环境. 结果是:

相当不错, 虽然没有 ubuntu/macos 上那种一气呵成的环境安装感觉, 但做开发环境还是没有问题的, 而且, ui 性能体验上要远超 macos 和 ubuntu (注意, 我说都是 ui 性能).

没有用 bash, 虽然我认为当前 bash 完成度已经超过了cygwin, 但要达到虚拟机的体验. 可能还要一段时间(半年?一年?)

在前几年, 我花了一定的努力将开发环境从 windows 转到了macos, 当然, 我现在还是认为macos是最佳的开发环境. 只不过, 当前有些变化

  • 系统:macos 从 10.9 后体验非常不好. 10.10 是个失败的版本, 10.11 算恢复过来, 但 10.12 这个版本感觉也不是很好.
  • 硬件部分 new macbook, 2016 rmbp 感觉不好, 高性能的 macos 设备不再推出, 价格飞涨

所以, 当初我们谈绑定, 比方说 windows 绑定, 只是当你习惯 macos 后, 其实也算是 macos 绑定, 当苹果的软件和硬件保持的水准,这种绑定是可以接受的. 反之, 像我这样的, 感觉会不爽. 特别是随着 windows 10 的不断改进, 新的硬件的诱惑, 比方说 xps 13/15, surface pro/book, thinkpad x1 等.

在windows 下做 python 开发, 主要的问题来自两个方面

  • 包含 c 扩展的包编译问题, 两个问题, 一个要配置编译器, 如 vc 2008, 另一个因为编译需要的库和头通常在windows上得到的方法比较麻烦, ubuntu通常是简单的 apt-get install xxx-dev
  • command 的 utf-8 问题

但目前,这两个问题都有较好的解决方案, 下面就简单都描述一下解决过程

首先, 关于编译器, 微软专门提供了一个 Microsoft Visual C++ Compiler for Python 2.7, 免费, 可从这个地址下载 http://www.microsoft.com/en-us/download/details.aspx?id=44266

当安装后,修改 C:Users[user name]AppDataLocalProgramsCommonMicrosoftVisual C++ for Python9.0vcvarsall.bat, 加入

SET DISTUTILS_USE_SDK=1
SET MSSdk=1

如果你用x86的python 2.7 , 那可能是这样的

:x86
echo Setting environment for using Microsoft Visual Studio 2008 x86 tools.
set VCINSTALLDIR=%~dp0VC\
set WindowsSdkDir=%~dp0WinSDK\
if not exist "%VCINSTALLDIR%bin\cl.exe" goto missing
set PATH=%VCINSTALLDIR%Bin;%WindowsSdkDir%Bin;%PATH%
set INCLUDE=%VCINSTALLDIR%Include;%WindowsSdkDir%Include;%INCLUDE%
set LIB=%VCINSTALLDIR%Lib;%WindowsSdkDir%Lib;%LIB%
set LIBPATH=%VCINSTALLDIR%Lib;%WindowsSdkDir%Lib;%LIBPATH%
SET DISTUTILS_USE_SDK=1
SET MSSdk=1
goto :eof

以后如果需要安装需要编译的包, 就选择打开 Visual C++ 2008 32-bit Command Prompt, 然后安装

由于新的whl 格式, 现在其实大部分基于whl格式的安装文件均为 windows 提供了预先编译的 pyd, 就 c9 而言, 我们依赖的所有库均没有问题

c9 当前依赖的库:

cython gevent pyzmq twisted txzmq cyclone tornado xlrd xlwt sqlalchemy psycopg2 reportlab==2.7 pillow html5lib==0.95 xhtml2pdf inflect bottle==0.11.6 python-memcached sockjs-cyclone ipython websocket-client fabric simplejson gevent-websocket pydispatcher M2CryptoWin32 sqlalchemy-utils openpyxl wechatpy requests jieba PyJWT xpinyin qiniu shell.py rsa

另外 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 值得收藏, 当安装失败时可以先瞧瞧有没有非官方维护的whl包

还有就是 virtualenvwrapper-win, 用惯 virtualenvwrapper 便利的不可缺少的工具

当然, git for windows也是不可缺少的.

第二点, 就是 command utf-8, 在当前, 解决方案也比较简单

  1. 首先是chcp 65001
  2. 然后是修改command字体, 比方说 lucida console
  3. 在系统属性中增加环境变量
set PYTHONIOENCODING=utf-8

Comments !

links

social