我使用一个GitHub操作来部署到Google函数。我的工作流程中的步骤包括:
steps:
- name: "Checkout repository"
uses: actions/checkout@v3
# Setup Python so we can install Pipenv and generate requirements.txt.
- name: "Setup Python"
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: "Install Pipenv"
run: |
pipenv requirements > requirements.txt
ls -la
cat requirements.txt
- name: "Generate requirements.txt"
run: pipenv requirements > requirements.txt
- id: "auth"
name: "Authenticate to Google Cloud"
uses: "google-github-actions/auth@v0"
with:
workload_identity_provider: "..."
service_account: "..."
- id: "deploy"
uses: "google-github-actions/deploy-cloud-functions@v0"
with:
name: "my-function"
runtime: "python310"一旦生成了requirements.txt文件,我希望它与我的应用程序代码一起部署(在上面的步骤中签出)。requirements.txt文件是在构建过程中生成的,但从未被部署过。(通过查看云函数中的源代码来确认)。

如何确保此文件与应用程序代码一起部署?
更新1:
下面是生成requirements.txt后列出目录内容后的输出:
total 56
drwxr-xr-x 6 runner docker 4096 Sep 6 20:38 .
drwxr-xr-x 3 runner docker 4096 Sep 6 20:38 ..
-rw-r--r-- 1 runner docker 977 Sep 6 20:38 .env.example
-rw-r--r-- 1 runner docker 749 Sep 6 20:38 .gcloudignore
drwxr-xr-x 8 runner docker 4096 Sep 6 20:38 .git
drwxr-xr-x 3 runner docker 4096 Sep 6 20:38 .github
-rw-r--r-- 1 runner docker 120 Sep 6 20:38 .gitignore
-rw-r--r-- 1 runner docker 139 Sep 6 20:38 Pipfile
-rw-r--r-- 1 runner docker 454 Sep 6 20:38 Pipfile.lock
-rw-r--r-- 1 runner docker 1276 Sep 6 20:38 README.md
drwxr-xr-x 5 runner docker 4096 Sep 6 20:38 app
drwxr-xr-x 2 runner docker 4096 Sep 6 20:38 data
-rw-r--r-- 1 runner docker 2169 Sep 6 20:38 main.py
-rw-r--r-- 1 runner docker 27 Sep 6 20:38 requirements.txt更新2:显示requirements.txt的内容显示它只包含:
-i https://pypi.org/simple不包括依赖项。这可能是问题所在,但我还不确定原因。
更新3:工作流部署阶段显示的错误是:
ModuleNotFoundError: No module named 'aiohttp'这是因为在运行函数之前没有要安装的requirements.txt文件。aiohttp恰好是我的源代码中列出的第一个依赖项。
发布于 2022-09-09 22:10:35
正如@ianyoung所解释的,问题在于pip文件。requirements.txt是空的,需求文件是项目所有依赖项的列表。这包括依赖项所需的依赖项。它还包含每个依赖项的特定版本,使用双等号(==)指定。
https://stackoverflow.com/questions/73626276
复制相似问题