首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(3.8)平台:除了使用`requirements.txt`之外,还可以运行带有‘--no-deps`’标志的Python包的附加pip命令

(3.8)平台:除了使用`requirements.txt`之外,还可以运行带有‘--no-deps`’标志的Python包的附加pip命令
EN

Stack Overflow用户
提问于 2021-05-05 11:59:25
回答 1查看 390关注 0票数 1

有一个名为Pythonaiopg包,用于异步处理PostgreSQL数据库。它有两个依赖项- async-timeoutpsycopg2-binary。我不希望它在使用psycopg2-binary时安装pip,因为我使用的是常规的psycopg2包。这是因为psycopg2-binary的作者不建议在生产中使用它。

这都不会造成在本地工作的任何问题,因为我可以将aiopg的所需依赖项添加到requirements.txt中,去掉不需要的依赖项,然后运行两个单独的命令:

  1. pip install -r requirements.txt
  2. pip install aiopg --no-deps

但是当我将我的项目推到Elastic Beanstalk时,它使用requirements.txt来安装Python包,而且我不知道如何运行附加的pip命令。

我尝试将pip3 install aiopg --no-deps和这个命令的不同变体添加到eb.config中(包括commandscontainer_commands部分),但都没有效果。

现在我的eb.config看起来是这样的:

代码语言:javascript
复制
packages:
    yum:
        amazon-linux-extras: []

commands:
    01_postgres_activate:
        command: sudo amazon-linux-extras enable postgresql11
    02_postgres_install:
        command: sudo yum install -y postgresql-devel

container_commands:
    01_aiopg_install:
        command: python3 -m pip install aiopg==1.2.1 --no-deps

但这不是沃金。Bean秸秆环境处于Severe状态,我的web.stdout.log仍然包含以下错误:web: ModuleNotFoundError: No module named 'aiopg'

那么,如何使用pip标记来实现这个附加的--no-deps命令,这个标志在requirements.txt文件中还不受支持?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-05 14:54:47

在贴出这个问题之前,我花了一整天的时间来解决这个问题。但一段时间后,我在谷歌上搜索了一些时间,尝试了几种其他方法,并找到了一个可行的解决方案。

我将问题中显示的eb.config文件中的最后一行更改为command: /var/app/venv/.../bin/python -m pip install aiopg==1.2.1 --no-deps,其中...应该被位于/var/app/venv/中的EC2实例中位于/var/app/venv/中的目录的名称替换。如果您将导出日志设置为pip (您将看到指向pip的env的完整路径),请将ssh放入您的实例中以查找该目录或在CloudWatch中搜索CloudWatch命令。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67400858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档