Estou muito satisfeito com minha configuração atual do emacs para Python, mas achei a configuração um pouco complicada. Documentarei minha configuração aqui para meu futuro e para qualquer outro Pythonista que esteja procurando uma configuração sólida do emacs.
Até este ponto, tenho usado mypy --strict na linha de comando para todas as minhas necessidades de verificação de tipo, mas mypy é bastante lento mesmo para bases de código muito pequenas, e mesmo no modo --strict não é tão tão rigoroso quanto poderia ser. Também não é um servidor de idiomas, o que desejo para minha configuração do emacs.
basedpyright é um fork do pyright com algumas melhorias excelentes tanto na verificação quanto na confiabilidade. É um verificador de tipos rápido e maravilhosamente rigoroso, com alguns bons recursos de linting adicionais.
As únicas desvantagens que estou enfrentando são que ele não funciona tão bem quanto mypy com os clientes boto3-stubs para AWS e que usa # pyright: ignore comments não padrão em vez do padrão # type: ignore comments, mas Posso conviver com essas questões em favor de uma experiência de verificação de tipo rigorosamente rigorosa.
Se você já possui projetos que usam Poesia, você vai querer mexer um pouco em seu ambiente virtual.
Vá para a raiz de cada um dos seus projetos e execute o seguinte comando:
poetry config --local virtualenvs.in-project true
Isso criará um arquivo poetry.toml se ainda não existir e adicionará uma configuração correspondente.
Isso, no entanto, não realmente moverá seu ambiente virtual existente. Para que esta alteração tenha efeito, você deve remover seu ambiente virtual existente, que pode ser encontrado executando
poetry env info --path
Não se esqueça de adicionar o caminho .venv ao seu .gitignore e a configuração de quaisquer outras ferramentas que você possa usar, como pycodestyle, ou você acabará com uma bagunça.
Em seguida, você deve adicionar uma seção de configuração ao seu pyproject.toml para informar ao basedpyright onde procurar seu ambiente virtual.
[tool.pyright] venv=".venv" venvPath="."
Você também pode fazer isso no arquivo pyrightconfig.json se, ao contrário de mim, você ainda não se sente completamente sobrecarregado com arquivos de configuração para diferentes ferramentas de desenvolvimento Python.
Uma coisa muito boa sobre basedpyright sobre pyright é que ele cria a dependência do nodejs como uma roda, então você pode ter certeza de que basedpyright deve funcionar em sua máquina, independentemente de você ter o nodejs instalado.
Para isolamento, geralmente é uma boa ideia instalar pacotes executáveis do Python usando pipx em vez de pip. Vamos em frente e fazer isso.
pipx install basedpyright
Para uma verificação de sanidade, considere correr
basedpyright --version
A instalação do basedpyright também fornece acesso ao comando basedpyright-langserver, mas isso não foi realmente escrito para os usuários interagirem, portanto, se você executar o basedpyright-langserver ou o basedpyright-langserver --version ou algo assim, obterá um rastreamento de pilha do nodejs.
Presumo que você, como leitor, saiba como instalar pacotes do MELPA e tenha uma maneira preferida de fazer isso. Aqui estão todos os pacotes que você precisa:
Instale-os e abra seu ~/.emacs ou seu ~/.emacs.d/init.el e adicione o seguinte:
;; lsp global settings (add-hook 'after-init-hook 'global-company-mode) (setq lsp-auto-guess-root t) ;; python (require 'lsp-mode) (setq lsp-pyright-langserver-command "basedpyright") (add-hook 'python-mode-hook (lambda () (require 'lsp-pyright) (lsp)))
Isso deve ser tudo que você precisa.
Se você acha que configurou tudo corretamente e ainda está tendo problemas para obter o modo lsp para encontrar pacotes que deveriam estar disponíveis no Poetry, uma coisa que você pode tentar é entrar e excluir seu ~/.emacs.d/.lsp-session-v1. Isso fará com que o modo lsp esqueça a raiz do projeto e forçá-lo a procurá-la novamente.
Espero que isso tenha lhe dado uma boa vantagem em seu ambiente de desenvolvimento Python. Se você tiver alguma dúvida, bem, sou iniciante em tudo isso e provavelmente não posso ajudá-lo, mas considerarei solicitações de mesclagem se você tiver dicas ou truques extras para usar o basedpyright com o emacs.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3