Jas*_*sch 1 python lxml virtualenv
在virtualenv中,我如何忽略no-site-packages单个包的规则?
一些背景:我使用virtualenv进行部署,但是自从我使用以来需要更长的时间lxml.每次重新安装新的virtualenv时,编译此过程最多需要15分钟.我可以为lxml全局网站包制作某种例外并使用它吗?有没有比将它复制到新的virtualenv更安全/更可靠的选择?
简答:不,但你可以做点别的事来解决同样的问题.
该--no-site-packages选项(除非您指定,现在是默认选项--system-site-packages)控制是否添加某些目录sys.path.给定目录是否在,您不能区分该目录中的一个包.
但是,您可以在虚拟环境的site-packages目录中创建包的符号链接.在我的系统上:
ln -s /usr/lib/python2.7/site-packages/lxml ./env/lib/python2.7/site-packages
Run Code Online (Sandbox Code Playgroud)
或者更通用(使用系统的python,而不是环境):
ln -s $(python -c 'import lxml, os.path; print(os.path.dirname(lxml.__file__)') ./env/lib/python2.7/site-packages
Run Code Online (Sandbox Code Playgroud)
如果您使用的是不支持符号链接的系统,则复制也应该有效,但在更新系统范围的lxml时会更加脆弱.