重命名父文件夹后Python本地包导入报ModuleNotFoundError如何无需安装解决
问题根因
你重命名文件夹后,Python的模块搜索路径(sys.path)里还留存着重命名前的旧路径/mnt/c/Users/windows_user/Desktop/Parent folder/local_package,旧路径失效导致无法找到对应包,这和pycache缓存无关,所以删缓存无法解决问题。之前你没有找到PYTHONPATH环境变量,是因为旧路径大概率是之前安装包时生成的路径记录,并非全局环境变量配置。
最优解决方案:pip可编辑安装
你的包已经有setup.py文件,直接用可编辑安装即可解决每次修改都要重装的问题,无需修改任何脚本,也不需要手动配置环境变量:
- 终端进入
local_package目录(该目录下存放setup.py文件) - 执行命令:
pip install -e . - 该操作会在conda环境的site-packages目录下生成指向你本地包目录的软链接,后续修改包代码会直接生效,不需要重复执行安装操作。
备选方案:给conda环境配置永久PYTHONPATH
如果你不想安装包,可以给当前使用的conda环境单独配置永久模块搜索路径:
- 激活目标conda环境:
conda activate p369_TF2.4 - 执行命令配置环境变量:
conda env config vars set PYTHONPATH=/mnt/c/Users/windows_user/Desktop/parent_folder/local_package:$PYTHONPATH
- 重新激活环境让配置生效:
conda deactivate && conda activate p369_TF2.4 - 验证配置是否成功:执行
python -c "import sys; print('/mnt/c/Users/windows_user/Desktop/parent_folder/local_package' in sys.path)",输出True即为配置完成。
内容的提问来源于stack exchange,提问作者Jorge Verdeguer Gómez
相关产品推荐
相关产品推荐

