yolk -l
向我提供了有关我在Ubuntu 10.04上安装了114个软件包的信息。使用
virtualenv virt_env/virt1 --no-site-packages --clear
我切换到那个,我的提示改变了,然后yolk -l
再次给了我114个相同的包。
那里发生了什么?
答案 0 :(得分:18)
激活virtualenv可以通过更改shell PATH来实现,因此virtualenv的bin /目录是第一个。这是所有它。这意味着当你运行“python”时,它会运行virtualenv的Python二进制文件的副本,而不是你的全局系统python。
但是,如果全局安装了yolk,则PATH上唯一的“yolk”二进制文件是/ usr / local / bin / yolk或其他一些;激活virtualenv不会改变这一点(因为你的virtualenv bin / dir中没有“蛋黄”脚本)。而/ usr / local / bin / yolk脚本自然就有了你的系统Python解释器。
这就是为什么在virtualenv中安装yolk可以解决问题;因为它在你的virtualenv bin / dir中添加了一个yolk脚本,它的shebang行中有virtualenv的python。
如果您不想在每个virtualenv中安装yolk,您也可以将/ yrk脚本包装器从/ usr / local / bin或其中的任何位置复制到您的virtualenv的bin目录中,并手动将shebang行更改为指向你的virtualenv的python。但是,这不适用于--no-site-packages virtualenv,因为脚本包装器将无法找到它需要导入的实际yolk包!如果你想在--no-site-packages virtualenv中使用yolk,你真正唯一的选择就是在那里安装。
答案 1 :(得分:0)
如果问题与您的路径无关(我想是这样),请删除项目目录中的lib和scripts文件夹,以清除virtualenv设置。使用您发布的命令行重新创建虚拟环境。激活virtualenv,然后安装yolk。