【问题标题】:Why is AWS's Chalice for Python not respecting my virtualenv?为什么 AWS 的 Chalice for Python 不尊重我的 virtualenv?
【发布时间】:2018-06-01 05:53:23
【问题描述】:

我正在尝试按照教程部署一个 chalice 应用程序。我正在使用带有 python3.6 的 virtualenv。我的应用程序依赖于 requirements.txt 中的一个 github 存储库,而该存储库的 requirements.txt 依赖于几个库。

我可以使用 python -i app.py 很好地运行应用程序,并且可以在 REPL 中正确执行我的端点。

但是,当我运行 chalice deploy 时,我收到一条错误消息,抱怨我需要的 github 存储库所需的模块。

File "/usr/local/lib/python2.7/dist-packages/chalice/deploy/packager.py", line 715, in download_all_dependencies
raise NoSuchPackageError(str(package_name))
NoSuchPackageError: Could not satisfy the requirement: PyQt5>=5.8.1

但是请注意,使用的这个 chalice 库是 2.7。我在一个设置为 python3.6 的 virtualenv 中。

我意识到我之前在全球范围内安装了 chalice,这可能是一个错误。所以我 pip 全局卸载了 chalice,但它仍然安装在我的 virtualenv 中。

现在重新运行圣杯,我明白了

$ chalice --version
bash: /usr/local/bin/chalice: No such file or directory

我尝试重新运行 chalice 到本地 virtualenv 的安装,但它没有改变任何东西。

我在这里做错了什么?

【问题讨论】:

  • 您确定在运行脚本之前已经激活了 venv,对吧?
  • 你从哪里运行命令?圣杯应该安装在项目文件夹中,并使用 venv

标签: python amazon-web-services chalice


【解决方案1】:

可能有多种原因。

我假设你的 virtualenv 被称为 venv,如果没有相应地更改它。

您尚未激活您的 virtualenv。

修复:

source venv/bin/activate 

您激活了 virtualenv,但路径不匹配。

修复:

echo $PATH
/Users/[yourpath]/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/bin

如果/Users/[yourpath]/venv/bin 不正确,请检查:

grep "VIRTUAL_ENV=" venv/bin/activate
VIRTUAL_ENV="/Users/[yourpath]/venv"

然后相应地更新venv/bin/activate

注意:不应将 virtualenv 文件夹添加到您的存储库中。这可能是您的问题的根源。

如果你想确保每个人都有匹配的依赖运行:

python -m pip freeze > requirements.txt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    • 2021-07-22
    • 2019-08-07
    • 2020-09-02
    相关资源
    最近更新 更多