virtualenv蛋黄问题

2023-11-26

yolk -l给我的信息是我的 Ubuntu 10.04 上安装了 114 个软件包。使用创建新的 virtualenv 目录后

virtualenv virt_env/virt1 --no-site-packages --clear

我切换到那个,我的提示符改变了,然后yolk -l再次给我同样的 114 个包裹。

那里发生了什么事?


激活 virtualenv 的方法是更改​​ shell PATH,使 virtualenv 的 bin/ 目录位于第一个。这是all确实如此。这意味着当您运行“python”时,它会运行 virtualenv 的 Python 二进制文件副本,而不是全局系统 python。

但是,如果您全局安装了 yolk,则 PATH 上唯一的“yolk”二进制文件是 /usr/local/bin/yolk 或类似的文件;激活 virtualenv 不会改变这一点(因为 virtualenv bin/ 目录中没有“yolk”脚本)。 /usr/local/bin/yolk 脚本自然在其 shebang 行中包含您的系统 Python 解释器。

这就是为什么将 yolk 安装到 virtualenv 中可以解决问题;因为它在您的 virtualenv bin/ 目录中添加了一个 yolk 脚本,该脚本在其 shebang 行中包含 virtualenv 的 python。

如果您不想在每个 virtualenv 中安装 yolk,您也可以将 yolk 脚本包装器从 /usr/local/bin 或任何位置复制到 virtualenv 的 bin 目录中,然后手动更改 shebang 行以指向您的virtualenv 的 python。不过,这不适用于 --no-site-packages virtualenv,因为脚本包装器将无法找到它需要导入的实际蛋黄包!如果您想在 --no-site-packages virtualenv 中使用 yolk,那么您唯一的选择就是将其安装在那里。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

virtualenv蛋黄问题 的相关文章

随机推荐