Skip to content

"/usr/bin/python3: No module named virtualenv" and "'python' not found," #615

Closed

Description

@NickVeld

Problem description:

I have only changed the default workflow from the runs-on: ubuntu-latest to runs-on: self-hosted (only Python has been detected) and get the exception /usr/bin/python3: No module named virtualenv for the init action.

In the analyze action I got the error [build-stdout] ERROR: 'python' not found, it should be available when running 'which python' in your shell.

I am already successfully tested my Python application using this runner.

Suggestion

I suppose all the problem occurred because of first of all not installing python by the action. But why it cannot be installed if the python is analyzed?

However, there are other minor problems:

  1. In init python3 is called and it is worked but analyze calls python
  2. init does not install virtualenv by itself somewhy
  3. If you are not going to setup python automatically then replace from
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#

to

# For most projects except on python, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# For the Python language you need to add the setup-python action manually.
#

Used workflow

# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"

on:
  push:
    branches: [ main ]
  pull_request:
    # The branches below must be a subset of the branches above
    branches: [ main ]
  schedule:
    - cron: '41 20 * * 6'

jobs:
  analyze:
    name: Analyze
    runs-on: self-hosted
    permissions:
      actions: read
      contents: read
      security-events: write

    strategy:
      fail-fast: false
      matrix:
        language: [ 'python' ]
        # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
        # Learn more:
        # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed

    steps:
    - name: Checkout repository
      uses: actions/checkout@v2

    # Initializes the CodeQL tools for scanning.
    - name: Initialize CodeQL
      uses: github/codeql-action/init@v1
      with:
        languages: ${{ matrix.language }}
        # If you wish to specify custom queries, you can do so here or in a config file.
        # By default, queries listed here will override any specified in a config file.
        # Prefix the list here with "+" to use these queries and those in the config file.
        # queries: ./path/to/local/query, your-org/your-repo/queries@main

    # Autobuild attempts to build any compiled languages  (C/C++, C#, or Java).
    # If this step fails, then you should remove it and run the build manually (see below)
    - name: Autobuild
      uses: github/codeql-action/autobuild@v1

    # ℹ️ Command-line programs to run using the OS shell.
    # 📚 https://git.io/JvXDl

    # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
    #    and modify them (or add more) to build your code if your project
    #    uses a compiled language

    #- run: |
    #   make bootstrap
    #   make release

    - name: Perform CodeQL Analysis
      uses: github/codeql-action/analyze@v1

Activity

  1. changed the title [-]/usr/bin/python3: No module named virtualenv[/-] [+]"/usr/bin/python3: No module named virtualenv" and "'python' not found,"[/+] on Jul 12, 2021
  2. edoardopirovano commented on Jul 12, 2021

    @edoardopirovano
    Contributor

    Hello, many thanks for reaching out with these issues.

    With regards to virtualenv not being installed by the init step, we have code that should do that (ref) but it seems this has not worked in your case. So that I can try to replicate this to debug things futher, would you be able to share some more details about your self-hosted runners? In particular, what operating system are they running? And are you using any containerization such as Docker? A link to a failing run would also be very useful, but I appreciate this may not be possible if the repository you are working on is private.

    With regards to python being used rather than python3, I agree we should probably modify this call or alternatively create an alias pointing python to python3 during the init step (as I believe is the case on the GitHub-hosted runners). I will work on a fix to do this.

    As a more temporary workaround until we've finished resolving the issues above for you, you should be able to get things working using the setup-python action.

  3. NickVeld commented on Jul 13, 2021

    @NickVeld
    Author

    Hello

    1. About the self-hosted runner: dockered (the base image: ubuntu:focal) on WSL2
    2. The link to the job: https://github.com/NickVeld/battery_handyman/actions/runs/1020626856

    Yes, it works with setup-python. :)

  4. edoardopirovano commented on Jul 13, 2021

    @edoardopirovano
    Contributor

    Thanks for sharing those details. I am looking into how we can improve our code and/or documentation to make our configuration experience in this case a bit more seamless. Glad to hear your workflow is working with setup-python in the mean time 🙂

  5. NickVeld commented on Jul 13, 2021

    @NickVeld
    Author

    Thanks to you

  6. NickVeld commented on Jul 15, 2021

    @NickVeld
    Author

    Can the issue be closed since the PR is merged?

  7. edoardopirovano commented on Jul 15, 2021

    @edoardopirovano
    Contributor

    Hello, yes the PR you can see as well as another code change internal to the CodeQL engine have both been merged and should resolve this issue for future users once they are released (this should happen late next week or early the following). I will close this. Thanks once again for your report, and do feel free to reopen the issue if in a couple of weeks you are still encountering it 🙂

  8. NickVeld commented on Jul 15, 2021

    @NickVeld
    Author

    Hello, thanks to you for the fix and communication

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions