You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Eclipse/PyDev无法找到已安装的distro模块,如何配置PYTHONPATH?

问题:Eclipse/PyDev运行Salt Minion脚本时提示distro模块找不到

现象说明

终端执行pip list显示distro模块已安装(版本1.9.0),但在Eclipse/PyDev中运行Salt Minion启动脚本时,抛出ModuleNotFoundError: No module named 'distro'错误。

终端pip list输出

pip list
Package            Version               Editable project location
------------------ --------------------- -------------------------------------
certifi            2024.8.30
charset-normalizer 3.4.0
contextvars        2.4
croniter           3.0.3
distro             1.9.0
idna               3.10
immutables         0.21
Jinja2             3.1.4
jmespath           1.0.1
looseversion       1.3.0
MarkupSafe         3.0.1
msgpack            1.1.0
packaging          24.1
pip                23.0.1
psutil             6.0.0
pycryptodomex      3.21.0
pydevd             3.1.0
python-dateutil    2.9.0.post0
pytz               2024.2
PyYAML             6.0.2
pyzmq              26.2.0
requests           2.32.3
salt               3006.9+98.g0dc964fb50 /home/dnessett/SaltSource/3006.9/salt
setuptools         65.5.0
six                1.16.0
urllib3            2.2.3

[notice] A new release of pip is available: 23.0.1 -> 24.2
[notice] To update, run: pip install --upgrade pip

Eclipse/PyDev中的错误回溯

Salt Minion启动脚本内容

#!/usr/bin/env python3
"""
This script is used to kick off a salt minion daemon
"""

from multiprocessing import freeze_support

import salt.utils.platform
from salt.scripts import salt_minion

if __name__ == "__main__":
    if salt.utils.platform.is_windows():
        # Since this file does not have a '.py' extension, when running on
        # Windows, spawning any addional processes will fail due to Python
        # not being able to load this 'module' in the new process.
        # Work around this by creating a '.pyc' file which will enable the
        # spawned process to load this 'module' and proceed.
        import os.path
        import py_compile

        cfile = os.path.splitext(__file__)[0] + ".pyc"
        if not os.path.exists(cfile):
            py_compile.compile(__file__, cfile)
    # This handles the bootstrapping code that is included with frozen
    # scripts. It is a no-op on unfrozen code.
    freeze_support()
    salt_minion()

错误信息

Traceback (most recent call last):
File "/home/dnessett/SaltSource/3006.9/salt/scripts/salt-minion", line 8, in <module>
import salt.utils.platform
File "/home/dnessett/SaltSource/3006.9/salt/salt/utils/platform.py", line 12, in <module>
import distro
ModuleNotFoundError: No module named 'distro'
[ERROR ] An un-handled exception was caught by Salt's global exception handler:
ModuleNotFoundError: No module named 'distro'
Traceback (most recent call last):
File "/home/dnessett/SaltSource/3006.9/salt/scripts/salt-minion", line 8, in <module>
import salt.utils.platform
File "/home/dnessett/SaltSource/3006.9/salt/salt/utils/platform.py", line 12, in <module>
import distro
ModuleNotFoundError: No module named 'distro'

已完成的环境准备步骤

  • 克隆Salt源码到~/SaltSource/3006.9:
    git clone https://github.com/dnessett/salt
    
  • 切换到3006.x分支并检出v3006.9标签:
    git switch -t origin/3006.x
    git checkout tags/v3006.9
    
  • 以可编辑模式安装源码:
    python -m pip install -e .
    
  • 使用pyenv指定Python 3.10.15解释器:
    sudo pyenv local 3.10.15
    

当前pip版本信息

dnessett@homelserv:~/SaltSource/3006.9$ which pip
/home/dnessett/.pyenv/shims/pip

dnessett@homelserv:~/SaltSource/3006.9$ pip --version
pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)

提问

是否需要修改PYTHONPATH以包含已安装模块?若需要,该如何配置?

内容的提问来源于stack exchange,提问作者dnessett

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 12:17:08