第二节.设置和使用您的开发环境
一.推荐的开发配置
自从Numpy中的包含有C和Cython部分在使用前需要编译,确保您做了必要的编译并其编译时包含了Python的头文件,更多内容请看从源码构建部分。
编译代码也意味着从开发源中导入NumPy需要一些额外的步骤,下面将对此进行解释。 在本章的其余部分中,我们假定您已经设置了您的git仓库。
构建开发版本的Numpy和运行测试,使用正确设置的Python导入路径生成交互式shell,请执行以下操作之一:
$ python runtests.py -v
$ python runtests.py -v -s random
$ python runtests.py -v -t numpy/core/tests/test_iter.py:test_iter_c_order
$ python runtests.py --ipython
$ python runtests.py --python somescript.py
$ python runtests.py --bench
$ python runtests.py -g -m full
首先建立NumPy,第一次可能需要几分钟。 如果指定-n,则测试将针对在当前PYTHONPATH上找到的NumPy版本(如果有)运行。
使用-s,-t或--python指定目标时,可以通过在暴露之后传递额外的参数,将其他参数转发给runtests.py嵌入的目标。 例如,要运行一个将--pdb标志转发给目标的测试方法,请运行以下命令:
$ python runtests.py -t numpy/tests/test_scripts.py:test_f2py -- --pdb
推荐使用runtests.py方法运行测试,当然,也有很多可选择的方法,例如就地构建或安装到virtualenv。 有关详情,请参阅下面FAQ。
二.就地构建
对于开发,您可以设置就地构建,以便对.py文件所做的更改无需重新生成即可生效。 第一次运行:
$ python setup.py build_ext -i
这使您只能从repo库目录中导入就地生成的NumPy。 如果您希望在该基本目录之外显示就地构建,则需要将您的PYTHON PATH环境变量指向此目录。 一些IDE(例如Spyder)有一些实用程序来管理PYTHON PATH。 在Linux和OSX上,您可以运行以下命令:
$ export PYTHONPATH=$PWD
在windows下运行以下命令
$ set PYTHONPATH=/path/to/numpy
现在,在NumPy中编辑一个Python源文件允许您立即测试和使用您的更改(在.py文件中),只需重新启动解释器即可。
请注意另一种方法来做一个就地建立可见的python setup.py开发仓库基地目录。 而不是调整PYTHONPATH,这会在你的站点包中安装一个.gg-link文件,并且在那里调整easy-install.pth,所以它是一个更持久的(和神奇的)操作。
三.其他的构建选项
可以用-j选项与numpy.distutils进行并行构建; 有关更多细节,请参阅并行构建。
为了在site-package包中安装开发版本的Numpy,使用命令 `python setup.py install --user`
类似的方法来就地构建和使用PYTHONPATH,但在源树之外的是使用:
$ python setup.py install --prefix /some/owned/folder
$ export PYTHONPATH=/some/owned/folder/lib/python3.4/site-packages
四.使用virtualenvs
一个经常被问到的问题是:“我如何设置一个NumPy的开发版本,与我用来做我的工作/研究的发布版本并行?”。
实现这一目的的一个简单方法是在站点包中安装发行版本,例如使用二进制安装程序或pip,并在virtualenv中设置开发版本。 首先安装virtualenv(可选地使用virtualenvwrapper),然后创建你的virtualenv(这里命名为numpy-dev):
$ virtualenv numpy-dev
现在,无论何时您想要切换到虚拟环境,您都可以使用命令source numpy-dev / bin / activate,并停用以退出虚拟环境并返回到以前的shell。