我觉得必须有办法做到这一点,但对于我的生活我无法弄清楚:我想在virtualenv中运行pip对一个需求文件,这样无论在哪个包中在运行pip之前,virtualenv在运行之后完成了需求文件(包括特定版本)。
现在的问题是,如果我在virtualenv中安装了比在需求文件中列出的更旧版本的软件包,它会抱怨版本不匹配并退出(它应该只是更新打包到给定的版本)。我正在运行的命令是pip install -I -r requirements.txt
,根据pip的帮助,我应该做点“忽略已安装的软件包(重新安装)”,但它肯定没有这样做。
我错过了什么?
(如果pip跳过已经完成的包,那就太好了。)
答案 0 :(得分:3)
我想出了我的点子问题的原因是什么。长话短说,virtualenv的构建目录中遗留的源代码导致错误导致程序包升级失败。我真正应该做的是在运行pip install之前清除该目录(我认为哪个pip并不总是这样),并且它似乎在与--upgrade / -U标志配对后执行我想要的所有操作。 / p>