gpt4 book ai didi

python - 为 virtualenv 使用单个站点包(作为异常(exception))

转载 作者:太空宇宙 更新时间:2023-11-04 09:12:08 25 4
gpt4 key购买 nike

在 virtualenv 中,如何忽略单个包的 no-site-packages 规则?

一些背景知识:我使用 virtualenv 进行部署,但自从我一直使用 lxml 以来,这些部署需要更长的时间。每次我重新安装一个新的 virtualenv 时,编译它最多需要 15 分钟。我可以为 lxml 做一些异常(exception)并使用全局站点包吗?有没有比将它复制到新的 virtualenv 中更安全/更可靠的选择?

最佳答案

简短回答:不,但您可以做其他事情来解决同样的问题。

--no-site-packages 选项(现在是默认选项,除非您指定 --system-site-packages)控制某些目录是否是添加到 sys.path .给定的目录要么在要么不在,您不能只区分该目录中的一个包。

但是,您可以在虚拟环境的 site-packages 目录中创建指向包的符号链接(symbolic link)。在我的系统上:

ln -s /usr/lib/python2.7/site-packages/lxml ./env/lib/python2.7/site-packages

或更一般地(使用系统的 python,而不是环境的):

ln -s $(python -c 'import lxml, os.path; print(os.path.dirname(lxml.__file__)') ./env/lib/python2.7/site-packages

如果您在不支持符号链接(symbolic link)的系统上,复制应该也可以,但在更新系统范围的 lxml 时会更加脆弱。

关于python - 为 virtualenv 使用单个站点包(作为异常(exception)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13703074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com