防止pip安装某些依赖项

我们正在用 Python 为 Alexa 技能开发一个AWS Lambda函数,并pip用于将ask-sdk包安装到我们的dist/目录中:

pip install -t dist/ ask-sdk

问题在于-t dist/因为pip想要在那里拥有所有依赖项,即使它们是在系统范围内安装的。

现在,ask-sdk依赖于boto3拉入大量其他软件包。但是,AWS Lambda运行时环境提供了boto3并且无需将其及其依赖项与我们的代码打包在一起。我确实已经boto3安装在系统中并且import boto3可以正常工作,所以我认为pip应该很高兴,但因为-t dist/它总是安装它。

我可以以某种方式安装ask-sdk系统中不存在的只是及其依赖项,例如ask-sdk-core,而不是那些已经安装的依赖项吗?

一种方法是列出所有模块并使用,pip --no-deps但这意味着不断手动跟踪依赖项,我们希望避免这种情况。

不知何故,我想告诉pip:如果已经安装了该软件包,即使没有安装,也不要将-t dist/副本放入dist/.

那可能吗?


FFIVE
浏览 315回答 3
3回答

catspeake

你可以试试这个选项  --no-dependencies忽略所有依赖项。要排除特定的,您可以将其放在需求文件中并传递它:pip install --no-deps -r requirements.txt
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python