【问题标题】:virtualenv yolk problemvirtualenv 蛋黄问题
【发布时间】:2010-04-30 07:37:46
【问题描述】:

yolk -l 告诉我我的 Ubuntu 10.04 上安装了 114 个软件包。使用

创建新的 virtualenv 目录后

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

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

那里发生了什么?

【问题讨论】:

  • 在虚拟环境中安装 yolk 有帮助……很奇怪。

标签: python virtualenv yolk


【解决方案1】:

通过更改 shell PATH 来激活 virtualenv,因此 virtualenv 的 bin/ 目录是第一个。这就是它所做的全部。这意味着当你运行“python”时,它会运行 virtualenv 的 Python 二进制文件副本,而不是你的全局系统 python。

但是,如果您全局安装了 yolk,则 PATH 上唯一的“yolk”二进制文件是 /usr/local/bin/yolk 或类似的;激活 virtualenv 并不会改变这一点(因为您的 virtualenv bin/dir 中没有“蛋黄”脚本)。 /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,那么你唯一的选择就是在那里安装它。

【讨论】:

【解决方案2】:

如果问题与您的路径无关(我想是),请删除项目目录中的 lib 和 scripts 文件夹以清除 virtualenv 设置。使用您发布的命令行重新创建虚拟环境。激活 virtualenv,然后安装 yolk。

【讨论】:

  • 作为替代方法,尝试“which yolk”——如果它在 (yourvirtualenv)/bin 中,然后尝试关闭终端并重新打开它,激活您的 virtualenv 并再次尝试“yolk -l”。为我修好了
猜你喜欢
  • 2017-05-29
  • 2012-07-21
  • 2011-05-30
  • 1970-01-01
  • 1970-01-01
  • 2014-07-11
  • 2021-04-17
  • 1970-01-01
  • 2011-07-08
相关资源
最近更新 更多