ModuleNotFoundError with pytest

后端 未结 6 720
时光说笑
时光说笑 2021-02-12 11:05

I want my tests folder separate to my application code. My project structure is like so

myproject/
  myproject/
    myproject.py
    moduleone.py
  tests/
    my         


        
6条回答
  •  执念已碎
    2021-02-12 11:42

    I ran into this issue as well and am using poetry for dependency management and direnv for my project specific environment variables. Please note, I am relatively new to Python so I don't know if this is the correct fix.

    Here is my entire .envrc file:

    layout_poetry() {
      if [[ ! -f pyproject.toml ]]; then
        log_error 'No pyproject.toml found.  Use `poetry new` or `poetry init` to create one first.'
        exit 2
      fi
    
      local VENV=$(poetry env list --full-path | cut -d' ' -f1)
      if [[ -z $VENV || ! -d $VENV/bin ]]; then
        log_error 'No created poetry virtual environment found.  Use `poetry install` to create one first.'
        exit 2
      fi
      VENV=$VENV/bin
      export VIRTUAL_ENV=$(echo "$VENV" | rev | cut -d'/' -f2- | rev)
      export POETRY_ACTIVE=1
      PATH_add "$VENV"
    }
    
    layout poetry
    export PYTHONDONTWRITEBYTECODE=1
    export PYTHONPATH="$PWD/project_name"
    

    I don't know if I need to layout poetry because it is supposed to be creating virtual environments for us already but this is what I coworker recommended so I went with it. Layout poetry also didn't work without that function and it didn't like when I added it to my zshenv so I added it here.

    For this specific question, the last line is the money maker.

提交回复
热议问题