GitHub Actions 无法设置 Python 虚拟环境

14

我需要设置一个虚拟环境,并安装Flask应用程序所需的依赖包。

但是,在这里出现了一个错误:

sudo apt install python3-venv
sudo python3.8 -m venv venv

这是我 GitHub Actions 的 .yml 文件。

name: TEST

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - name: Setup system group
      run: |
        if [ ! $( getent group uni ) ]; then sudo addgroup --system uni; fi
        
    - name: Setup system user
      run: |
        if [[ $(getent passwd uni) = "" ]]; then sudo adduser --no-create-home --force-badname --disabled-login --disabled-password --system uni; fi
    - name: Add user user to group
      run: |
        sudo usermod -g uni uni
    
    - name: Setup base directory
      working-directory: /
      run: |
        if [ ! -d ./uni/test/app ]; then sudo mkdir -p ./uni/test/app; fi
        sudo chown uni:uni -R /uni/test
        sudo chmod 775 -R /uni/test
      
    - name: Setup log directory
      working-directory: /var/log
      run: |
        if [ ! -d ./uni/test ]; then sudo mkdir -p ./uni/test; fi
        sudo chown uni:uni -R ./uni/test
        sudo chmod 755 -R ./uni/test
      
    - uses: actions/checkout@v2
    - name: Set up Python 3.8
      uses: actions/setup-python@v2
      with:
        python-version: 3.8
        
    - name: Setup Python virtual environment
      working-directory: /uni/test/app
      run: |
        sudo apt install python3-venv
        sudo python3.8 -m venv venv
    
    - name: Install dependencies
      working-directory: /uni/test/app/venv
      run: |
        source ./bin/activate
        pip install --upgrade pip
        pip install wheel
        if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
        deactivate

我在这里做错了什么?

是否有一种方法可以在下面的代码块中安装python3-venv?

- uses: actions/checkout@v2
- name: Set up Python 3.8
  uses: actions/setup-python@v2
  with:
    python-version: 3.8

1
你好。请提供你所遇到的错误信息。 - jhutar
1个回答

17

我刚刚在这里测试了一个简单的工作流程(与以下内容相同),以使用虚拟环境。

当使用actions/checkoutsetup-python操作来使用python3.8 -m venv env命令创建虚拟环境时,似乎不需要sudo apt install python3-env命令。

on:
  push:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Set up Python 3.8
        uses: actions/setup-python@v2
        with:
          python-version: 3.8
      - name: Run Python commands
        run: |
          pip install --upgrade pip
          python3.8 -m venv env
          source env/bin/activate
          echo "VIRTUAL ENV:" $VIRTUAL_ENV

工作流运行日志中,显示 VIRTUAL ENV: /home/runner/work/poc-github-actions/poc-github-actions/env


1
谢谢你的回答。我一段时间前就解决了,只是忘记更新这个问题。 - Nikk
3
一个注意点:source env/bin/activate 在 Windows 执行器上无法工作,因为脚本存储在 Scripts 文件夹中,而不是 bin - Jens

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接