0
我正在使用Ubuntu 14.04
。我有一个脚本取决于pynotify
。当脚本运行在任何虚拟环境之外时,它运行良好(其他依赖关系也是全局安装的),但是如果我在任何虚拟环境(安装了其他依赖项)内运行相同的脚本,则不起作用。
然后我以为我早就将它安装了,但事实并非如此。我试过这个(全球):无法在virtualenv中导入pynotify
pip freeze | grep pynotify
但是,它没有给出任何结果。这种行为有没有解释?
它的工作原理。但是,这不违背工作virtualenv应该做的吗?它正在使用已经在全球范围内安装的所有东西,那么它有什么帮助?我的意思是,没有venv我们可以做同样的事,对吧?通常,我们使用'pip freeze'生成'requirements.txt'文件并与其他人共享依赖关系,但在这种情况下,它将包含许多与此项目无关的内容。有没有办法只包括与需求相关的东西? –
__“使用--no-site-packages选项运行virtualenv将不包含全局安装的软件包,这对于保持软件包列表清洁以防需要稍后访问它很有用。 virtualenv 1.7及更高版本。“__来源:http://docs.python-guide.org/en/latest/dev/virtualenvs/#other-notes –
默认情况下,virtualenv会给你一个干净的环境,没有安装软件包,也不会使用您的全球安装软件包。如果你想在你的项目中使用pynotify,我们的想法是在干净的环境下使用pip明确地和单独地将pynotify安装到该项目中,而不是使用已经安装在系统上的全局包。 –