重定位隔离环境

注意: –relocatable参数带有一定的实验性,可能还有一些尚未发现的问题。而且该参数也不能在Windows下使用。

一般情况下,隔离环境都绑定在某个特定路径下。这也就意味着不能通过仅仅是移动或拷贝目录到另一台计算机上而迁移隔离环境。这时可以使用–relocatable来重定位隔离环境:

  1. $ virtualenv --relocatable ENV

该参数会根据相对路径生成某些setuptools或distribute文件,然后再运行 activate_this.py 更改所有的脚本,而不是通过改变python解释器软链接的指向来重置环境。

注意: 安装 任何 包之后,都要再次重定位环境。只要你将某个隔离环境迁移了,那么每安装一个新的包之后,都要再运行一遍 virtualenv —relocatable

要认识到,该参数 不能做到真正的跨平台 。虽然我们可以移动相关目录,但仅仅能用于类似的计算机之间。一些已知的环境差异,仍会导致不兼容:

- 不同版本的Python- 不同平台使用不同的内部编码,比如一台用UCS2,另一台用UCS4- Linux和Windows- Intel和ARM- 某些包依赖系统的C库,而C库在不同平台下有所差异(不同的版本或不同的文件系统下的所在位置)。

使用重定位参数创建新隔离环境时,会默认使用 —system-site-packages 参数。