我已经使用
$ virtualenv --system-site-packages env
它在我设置了虚拟环境的机器上运行良好,我可以访问脚本中的所有全局包。
然后我按照以下步骤将此虚拟环境复制到另一台机器 -
- 使虚拟环境可在我的本地计算机上重定位
$ virtualenv --relocatable env
- 将文件夹复制
env
到远程计算机。 - 修改
env/bin/activate
脚本以更改VIRTUAL_ENV
远程机器上的路径
有了这个,我就可以访问我所有的本地包了。但由于某种原因,它无法访问系统级包。我尝试使用的系统级包是 psycopg2。
但是,在远程机器上执行以下操作可以让我访问 psycopg2 模块
$ ln -s /usr/lib64/python2.7/dist-packages/psycopg2 $virtual_env/lib/python2.7/site-packages
或者
$ cp -R /usr/lib64/python2.7/dist-packages/psycopg2 $virtual_env/lib/python2.7/site-packages
有什么方法可以让我不必做这个黑客攻击吗?该选项如何--system-site-packages
工作?从我看到的 --system-site-packages 选项不会将系统级包的硬拷贝到虚拟env
. 那么它是否在脚本中设置了某种路径变量,我可以更改并使其正常工作?