
box = "\u2610" check = "\u2611" 我在我的 py 文件里修改过这两个变量为 unicode ,然后我的文件就再也执行不了了,vscode 好像坏掉了
我尝试在文件头部加编码结果还是报错
# -*- mode: python -*- # -*- coding: utf-8 -*- 报错
File "青浦.py", line 38 msq = f"{item['通用名']} {item['规格']} x {item['销售数量']}" ^ SyntaxError: invalid syntax 我如果不加编码就报错:
File "青浦.py", line 7 SyntaxError: Non-ASCII character '\xe7' in file 青浦.py on line 7, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details 好无语啊,如果不在文件头部加编码,一会儿报错\xe7 一会又是 \xe2 \xe9 ,啊啊啊啊啊
1 xiaohundun OP 我就重启了下电脑,改了个 unicode 变量,就坏了,重启之前我还好好的执行着呢 |
2 xiaohundun OP 发现是 vscode 问题,我在 terminal 里面执行是可以的。。 |
3 GeruzoniAnsasu 2024-04-11 13:57:05 +08:00 首先 python3 不需要 encoding 的 header 然后,先检你的 interpreter 选对了没,你很可能选到了 python2 作为 interpreter 再检查不可见字符,比如 BOM. |
4 xiaohundun OP @GeruzoniAnsasu 大佬!你说的第一个我检查了下发现解释器不对,我的其他 terminal 都可以自动切换 conda 环境,但是 vscode 这里不会,用的确实是 python2 ,谢谢! |
5 GeruzoniAnsasu 2024-04-11 14:02:02 +08:00 另外 \xe7 \xe9 是常见的中文字符 utf8 编码序列的第一个字节,你应该对此建立点直觉。 p.s. \xe2 是 \u2610 这个符号的 utf8 编码序列的第一个字节 |
6 AS4694lAS4808 2024-04-11 14:05:28 +08:00 用 notepad plus plus 打开,转码为 utf-8 无 bom ,再执行试试? |
7 xiaohundun OP @GeruzoniAnsasu #5 好的多谢,我正在排查是什么导致 vscode 没有切换环境 |
8 woodfizky 2024-04-11 14:09:49 +08:00 纯好奇,为啥 OP 同时装了 Python2 ? |
9 xiaohundun OP @woodfizky mac 自带的吧 |
10 xiaohundun OP 你们看我的 vscode ,无法切换环境= = ``` (base) Prescription_Generater which python /Library/Frameworks/Python.framework/Versions/2.7/bin/python (base) Prescription_Generater conda activate base (base) Prescription_Generater which python /Lbrary/Frameworks/Python.framework/Versions/2.7/bin/python (base) Prescription_Generater . /Users/xxx/anaconda3/bin/activate && conda activate /Users/xxx/anaconda3; (base) Prescription_Generater which python /Library/Frameworks/Python.framework/Versions/2.7/bin/python (base) Prescription_Generater ``` |
11 goodryb 2024-04-11 14:18:22 +08:00 这种问题不如装个通义灵码,代码和报错都扔进去,直接出结果 |
12 AS4694lAS4808 2024-04-11 14:20:05 +08:00 Terminal 的问题啊。。试试直接 source ~/miniconda3/etc/profile.d/conda.sh ,然后再 conda activate |
13 xiaohundun OP @goodryb 我问过 gpt 让我加编码头的= =可能我没掌握方法吧 |
14 xiaohundun OP @AS4694lAS4808 #12 不行, (base) Prescription_Generater source /Users/xxx/anaconda3/etc/profile.d/conda.sh (base) Prescription_Generater conda activate base (base) Prescription_Generater which python /Library/Frameworks/Python.framework/Versions/2.7/bin/python (base) Prescription_Generater |
15 GeruzoniAnsasu 2024-04-11 14:24:21 +08:00 我没用过 conda ,但在 vscode 里是可以手动选 venv 的 interpreter 还是系统 interpreter 的 cmd + shift + p select python interpreter 试试 |
16 xiaohundun OP @GeruzoniAnsasu 这个也有问题 我选的是正确的解释器 但是我在执行脚本的时候环境还是错的 |
17 xiaohundun OP @GeruzoniAnsasu 总之就是无论如何切换不了 |
18 dorothyREN 2024-04-11 16:47:35 +08:00 第一行 加个 #!/usr/bin/env python3 |
19 lolizeppelin 2024-04-18 14:35:30 +08:00 dos2unix |