0

我正在尝试使用nvim0.6 作为我的 IDE,并且我正在开发一个具有多个本地模块的大型项目(与主要 Python 脚本位于同一目录中,而不是通过 安装pip)。当我使用 VSCode 时,这些模块可以很好地导入。但是,在 中nvim,我在每个本地模块上都收到“无法解决”错误。我正在使用pyenv,但如果我切换到任何其他版本,问题是相同的;将 Python 设置为 system 或任何其他版本会导致pip-installed 模块出错,因为这些模块没有安装在这些环境中,但在所有环境中 VSCode 都会正确加载本地模块并且nvim不会。我错过了什么?

nvim 的错误: 在此处输入图像描述

但是在 VSCode 中,一切都加载得很好: 在此处输入图像描述

两者都使用 Python 3.9.5 viapyenv作为他们的解释器。如果我从命令行打开 Python 提示符,我可以导入这些模块并毫无问题地使用它们:

>python
Python 3.9.5 (default, Jul  3 2021, 18:40:06)
[Clang 13.0.0 (clang-1300.0.18.6)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import weewx
>>> dir(weewx)
['CHECK_LOOP', 'CMD_ERROR', 'CONFIG_ERROR', 'CRCError', 'CannotCalculate', 'DB_ERROR', 'END_ARCHIVE_PERIOD', 'Event', 'HardwareError', 'IO_ERROR', 'METRIC', 'METRICWX', 'NEW_ARCHIVE_RECORD', 'NEW_LOOP_PACKET', 'POST_LOOP', 'PRE_LOOP', 'RetriesExceeded', 'STARTUP', 'StopNow', 'US', 'UnitError', 'UnknownAggregation', 'UnknownArchiveType', 'UnknownBinding', 'UnknownDatabase', 'UnknownDatabaseType', 'UnknownType', 'UnsupportedFeature', 'ViolatedPrecondition', 'WakeupError', 'WeeWxIOError', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '__version__', 'absolute_import', 'all_service_groups', 'debug', 'launchtime_ts', 'require_weewx_version', 'time']
4

1 回答 1

0

我可以通过手动设置内置nvimLSP的 extraPath 变量来解决这个问题init.lua。我仍然不确定如何自动实现这一点。

require("lspconfig").pyright.setup {
  settings = {
    python = {
      analysis = {
        extraPaths = {"path/to/desired/modules"}
      }
    }
  }
}
于 2021-12-20T00:19:01.057 回答