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
相关产品推荐
相关产品推荐

