Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pythonPath wrong on MacOS #65

Open
jdtsmith opened this issue Nov 19, 2021 · 5 comments
Open

pythonPath wrong on MacOS #65

jdtsmith opened this issue Nov 19, 2021 · 5 comments

Comments

@jdtsmith
Copy link

jdtsmith commented Nov 19, 2021

On MacOS, python links to the bundled Python 2.7. Since lsp-pyright searches for and configures pyright with the interpreter, this leads to real problems. There was a bug in pyright that now correctly first searches python3 in all cases, but since lsp-pyright specifically searches for and configures /usr/bin/python, it isn't solved in Emacs. See microsoft/pyright#2562.

The best solution is likely not to set the pythonPath at all. Since pyright itself expends some significant energy finding the correct interpreter on various platforms, this is duplicated effort anyway.

@Typas
Copy link

Typas commented Dec 17, 2021

I think the problem of lsp-pyright is from lsp-pyright-locate-python. It tries to find executable first from bin/python, whilst python from homebrew usually places executable (link) in /usr/local/bin/python for Python 2 and /usr/local/bin/python3 for Python 3.

@jdtsmith
Copy link
Author

Right, and my point was that lsp-pyright shouldn't try to find an interpreter at all, since pyright itself will do so if it doesn't have one specifically configured (e.g. with pythonVersion = "3.9" or so).

@ivan-avalos
Copy link

ivan-avalos commented Jan 7, 2023

Argh, I just ended up directly editing the lsp-pyright.el file in the .emacs.d directory.

(defun lsp-pyright-locate-python ()
  "Look for python executable cmd to the workspace."
  (executable-find "/bin/python3"))
  ;; (or (executable-find (f-expand "bin/python" (lsp-pyright-locate-venv)))
  ;;     (with-no-warnings
  ;;       (if (>= emacs-major-version 27)
  ;;           (executable-find lsp-pyright-python-executable-cmd lsp-pyright-prefer-remote-env)
  ;;         (executable-find lsp-pyright-python-executable-cmd)))))

Did you manage to solve it in a better way?

@jdtsmith
Copy link
Author

jdtsmith commented Jan 7, 2023

I switched to eglot.

@ghost
Copy link

ghost commented Feb 20, 2024

@ivan-avalos I created a PR to allow us to more easily configure this behavior - #89 - LMK if you think this would help solve your problem without needing to modify the source code. Hopefully it will be more robust long term

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants