Search code examples
pythongitpycharmanaconda

Git Hooks inside PyCharm running in incorrect environment


I have recently started a new project in PyCharm, finally utilizing anaconda environments. However, after trying to make my first commit through PyCharm, it appears to be using my native python, not the environment set in PyCharm. I've tried to restart PyCharm several times, restarted my computer, and reinstalled the virtual environment.

Here is a copy of pre-commit hook:

set -e

# Run linters and tests
source scripts/lint.sh

The linter is the following: (which python has been added to highlight the issue)

set -e
set -v

which python

flake8 ~project name~
mypy ~project name~
pytest -x
black --check --fast --quiet ~project name~

set +v

I am running the commit through PyCharm -> VCS -> Commit. Inside PyCharm, the commit fails

enter image description here (below this are a large amount of mypy errors, but note the environment)

However, if I run the commit from the terminal with $ git commit -m "testing commit" the commit works. It provides the following response:

enter image description here

This is the correct virtual environment inside of the project, seen here: enter image description here

Am I setting something up incorrectly? I vastly prefer PyCharm's VCS and would prefer not to have to use git from the terminal.


Solution

  • PyCharm doesn't run git hooks under the virtual environment. The relevant ticket in the bug tracker: https://youtrack.jetbrains.com/issue/PY-12988