Windows下已安装setuptools仍触发ModuleNotFoundError的问题及解决
问题:Windows下运行install.sh调用Flownet2的setup.py时提示setuptools找不到
环境与操作背景
- Conda版本:4.12.0
- 操作系统:Windows 10
- 已激活conda环境
consistent_depth,且在该环境下执行python -c "import setuptools"无报错,确认setuptools已安装 - 执行命令运行install.sh脚本:
(consistent_depth) C:\Users\a0502200\Desktop\consistent_depth>"./scripts/install.sh"
脚本与报错详情
主install.sh脚本内容
# conda create -n consistent_depth python=3.6 # conda activate consistent_depth # Note to set LD_LIBRARY_PATH if conda activate fails to do so. pip install -r requirements.txt -f https://download.pytorch.org/whl/torch_stable.html pushd third_party/flownet2 chmod +x install.sh ./install.sh popd
具体报错信息
Traceback (most recent call last): File "C:\Users\a0502200\Desktop\consistent_depth\third_party flownet2\networks\correlation_package\setup.py", line 5, in <module> from setuptools import setup, find_packages ModuleNotFoundError: No module named 'setuptools' Traceback (most recent call last): File "C:\Users\a0502200\Desktop\consistent_depth\third_party flownet2\networks\resample2d_package\setup.py", line 5, in <module> from setuptools import setup ModuleNotFoundError: No module named 'setuptools'
原因分析
- Bash环境未正确关联conda环境:Windows下常用的bash环境(如Git Bash)可能未加载conda初始化脚本,导致子脚本
./install.sh运行时调用系统默认Python而非conda环境中的Python,而系统Python未安装setuptools。 - 子脚本的Python调用未指定conda环境:third_party/flownet2下的install.sh脚本直接使用
python命令,未明确指向conda环境的Python路径,触发环境不匹配。 - conda环境激活未传递到子进程:即使主shell激活了conda环境,子shell运行install.sh时可能未继承环境变量,导致Python路径错误。
解决方法
方法1:确保bash环境正确激活conda环境
- 首次运行bash时执行conda初始化命令:
conda init bash
- 重启bash后重新激活conda环境:
conda activate consistent_depth
- 验证当前Python环境:执行
which python(Git Bash)或where python,确认路径指向conda环境下的Python.exe。
方法2:修改子脚本的Python调用路径
- 打开
third_party/flownet2/install.sh,将所有python命令替换为conda环境Python的绝对路径,示例:
# 替换为你的实际conda环境Python路径 C:/Users/a0502200/miniconda3/envs/consistent_depth/python.exe setup.py install
- 或使用conda环境变量动态获取路径:
$CONDA_PREFIX/python.exe setup.py install
方法3:手动安装Flownet2扩展包
跳过install.sh脚本,直接在conda环境中手动运行各个setup.py:
# 安装correlation_package cd third_party/flownet2/networks/correlation_package python setup.py install # 安装resample2d_package cd ../resample2d_package python setup.py install
方法4:强制在conda环境中安装setuptools(兜底)
重新指定conda环境安装,确保包的完整性:
conda install -n consistent_depth setuptools -y
内容的提问来源于stack exchange,提问作者10may
相关产品推荐
相关产品推荐

