Skip to content

Commit

Permalink
Specify Python exec path with minor version if available (#3508)
Browse files Browse the repository at this point in the history
Fixes #3507
  • Loading branch information
kephircheek authored Mar 28, 2023
1 parent b542f58 commit bf5abdb
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 3 deletions.
1 change: 1 addition & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,7 @@ versions separately.
- Move 3.11 CI to normal flow now that all dependencies support 3.11 (#3446)
- Docker: Add new `latest_prerelease` tag automation to follow latest black alpha
release on docker images (#3465)
- Fixed missing python binary path in autoload script for vim (#3508)

### Documentation

Expand Down
14 changes: 11 additions & 3 deletions autoload/black.vim
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ FLAGS = [
]


def _get_python_binary(exec_prefix):
def _get_python_binary(exec_prefix, pyver):
try:
default = vim.eval("g:pymode_python").strip()
except vim.error:
Expand All @@ -43,7 +43,15 @@ def _get_python_binary(exec_prefix):
return default
if sys.platform[:3] == "win":
return exec_prefix / 'python.exe'
return exec_prefix / 'bin' / 'python3'
bin_path = exec_prefix / "bin"
exec_path = (bin_path / f"python{pyver[0]}.{pyver[1]}").resolve()
if exec_path.exists():
return exec_path
# It is possible that some environments may only have python3
exec_path = (bin_path / f"python3").resolve()
if exec_path.exists():
return exec_path
raise ValueError("python executable not found")

def _get_pip(venv_path):
if sys.platform[:3] == "win":
Expand Down Expand Up @@ -82,7 +90,7 @@ def _initialize_black_env(upgrade=False):
_executable = sys.executable
_base_executable = getattr(sys, "_base_executable", _executable)
try:
executable = str(_get_python_binary(Path(sys.exec_prefix)))
executable = str(_get_python_binary(Path(sys.exec_prefix), pyver))
sys.executable = executable
sys._base_executable = executable
print(f'Creating a virtualenv in {virtualenv_path}...')
Expand Down

0 comments on commit bf5abdb

Please sign in to comment.