Mac迁移项目后无法激活virtualenv的问题排查求助
问题描述
数月前开发的某项目已三个月未修改,期间更换Mac并通过Time Machine迁移所有数据。其他未使用virtualenv的项目运行正常,但该项目无法激活virtualenv。
项目结构如下:
coachregiszter --bin --include --lib --mcr(存放manage.py的项目文件夹) --pyenv.cfg
执行命令source bin/activate时出现如下错误:
source bin/activate Script started, output file is started Script: on: No such file or directory Script done, output file is started bin/activate:2: bad pattern: ^[[1m^[[7m%^[[27m^[[1m^[[0m
问题原因
- 终端控制字符污染:Time Machine迁移时,原系统终端的ANSI格式控制字符(即报错里的
^[[1m^[[7m%^[[27m^[[1m^[[0m这类字符)被意外写入bin/activate脚本。shell解析脚本时无法识别这些非脚本语法的控制字符,因此抛出"bad pattern"错误。 - 路径绑定失效:virtualenv与原Mac的Python环境路径绑定,迁移到新Mac后,
pyenv.cfg里记录的旧Python路径在新系统中不存在,激活脚本读取配置时找不到对应文件,触发"Script: on: No such file or directory"这类路径错误。 - 迁移导致文件损坏:Time Machine迁移过程中,
activate脚本可能出现字节乱码、部分内容丢失的情况,破坏了脚本的语法结构,导致shell无法正常解析执行。
内容的提问来源于stack exchange,提问作者RlM
相关产品推荐
相关产品推荐

