U盘运行Python脚本报ModuleNotFoundError是因为U盘路径未加入sys.path,需手动插入;应使用嵌入式Python、--target安装包、动态获取脚本路径避免硬编码盘符。

U盘里直接运行Python脚本为什么总报错ModuleNotFoundError
因为默认没把U盘路径加进sys.path,Python根本找不到你放的包和脚本。不是环境没装好,是它压根“看不见”你的U盘目录。
实操建议:
立即学习“Python免费学习笔记(深入)”;
- 脚本开头手动插入U盘路径:
import sys<br>import os<br>usb_path = r"D:my_python" # 替换成你U盘的实际盘符和文件夹<br>if usb_path not in sys.path:<br> sys.path.insert(0, usb_path)
- 避免用相对路径导入,比如
from utils.helper import foo会失败——除非utils在当前工作目录或sys.path里 - 别依赖
pip install -e .开发模式,U盘拔插后egg-link路径失效,直接变ImportError
怎么让python.exe不依赖系统注册表和安装路径
Windows上双击python.exe报api-ms-win-crt-runtime-l1-1-0.dll缺失,本质是官方安装版绑定了VC++运行时;便携版必须用嵌入式Python(Embedded Distribution)。
实操建议:
立即学习“Python免费学习笔记(深入)”;
- 去python.org下载带
embeddable zip file字样的版本(如python-3.11.9-embed-amd64.zip) - 解压后删掉
python311._pth文件里的import site这一行,否则仍会读系统site-packages - 把
python311.zip和python311.dll一起留着,缺一不可——前者是标准库,后者是核心运行时
pip装的包怎么存到U盘里、换电脑也能用
默认pip install写进用户目录(%LOCALAPPDATA%ProgramsPython...),U盘一拔就断。必须强制指定--target到U盘路径,并禁用site-packages自动加载。
实操建议:
立即学习“Python免费学习笔记(深入)”;
- 先创建本地包目录:
mkdir D:my_pythonlibs - 装包时指定目标:
python -m pip install requests --target D:my_pythonlibs --no-deps(--no-deps防误装系统级依赖) - 在脚本里追加该路径:
sys.path.insert(0, r"D:my_pythonlibs") - 注意:C扩展包(如
numpy)可能因架构/VC版本不兼容直接报DLL load failed,优先选纯Python包
跨电脑运行时os.getcwd()和路径拼接总出错
U盘在不同电脑盘符可能变成E:或F:,硬编码"D:\script.py"必挂。不能靠猜盘符,得动态定位。
实操建议:
立即学习“Python免费学习笔记(深入)”;
- 用
os.path.dirname(os.path.abspath(__file__))获取当前脚本所在U盘目录,这是最稳的起点 - 所有路径拼接用
os.path.join(base_dir, "data", "config.json"),别用+或/ - 如果要读U盘根目录下的配置,先
os.path.dirname(...)向上两级,再os.path.dirname()一次得到盘符根路径 - 避免
os.chdir()切换工作目录——不同电脑初始路径不同,容易让后续相对路径彻底失控
真正麻烦的不是打包,是路径和模块加载这两层隐式依赖。只要sys.path没理清、__file__没用对,换台电脑就等于换套环境。


















