首页 > 解决方案 > Zappa 在部署时未正确调用正确的虚拟环境

问题描述

我正在尝试使用 Zappa 部署 Django 应用程序。我使用 pyenv 创建了 virtualenv。

以下命令确认正确的 virtualenv

▶ pyenv which zappa
/Users/****/.pyenv/versions/zappa/bin/zappa

▶ pyenv which python
/Users/****/.pyenv/versions/zappa/bin/python

但是当我尝试使用zappa deploy dev以下错误部署应用程序时

▶ zappa deploy dev
(pip 18.1 (/Users/****/.pyenv/versions/3.6.9/envs/zappa/lib/python3.6/site-packages), Requirement.parse('pip>=20.1'), {'pip-tools'})
Calling deploy for stage dev..
Oh no! An error occurred! :(

==============

Traceback (most recent call last):
  File "/Users/****/.pyenv/versions/3.6.9/envs/zappa/lib/python3.6/site-packages/zappa/cli.py", line 2778, in handle
    sys.exit(cli.handle())
  File "/Users/****/.pyenv/versions/3.6.9/envs/zappa/lib/python3.6/site-packages/zappa/cli.py", line 512, in handle
    self.dispatch_command(self.command, stage)
  File "/Users/****/.pyenv/versions/3.6.9/envs/zappa/lib/python3.6/site-packages/zappa/cli.py", line 549, in dispatch_command
    self.deploy(self.vargs['zip'])
  File "/Users/****/.pyenv/versions/3.6.9/envs/zappa/lib/python3.6/site-packages/zappa/cli.py", line 723, in deploy
    self.create_package()
  File "/Users/****/.pyenv/versions/3.6.9/envs/zappa/lib/python3.6/site-packages/zappa/cli.py", line 2264, in create_package
    disable_progress=self.disable_progress
  File "/Users/****/.pyenv/versions/3.6.9/envs/zappa/lib/python3.6/site-packages/zappa/core.py", line 627, in create_lambda_zip
    copytree(site_packages, temp_package_path, metadata=False, symlinks=False, ignore=shutil.ignore_patterns(*excludes))
  File "/Users/****/.pyenv/versions/3.6.9/envs/zappa/lib/python3.6/site-packages/zappa/utilities.py", line 54, in copytree
    lst = os.listdir(src)
FileNotFoundError: [Errno 2] No such file or directory: '/Users/****/mydir/zappa/env/lib/python3.6/site-packages'

==============

您可以看到在安装 virtualenv 的位置引发错误的行是不同的。我不知道为什么Zappa deploy要在这里寻找站点包。

标签: pythondjangopyenvzappa

解决方案


推荐阅读