作者fragmentwing (片翼碎梦)
看板Python
标题[问题] f'{变数名称=}'突然不能用
时间Tue Feb 21 13:12:00 2023
如题 python3.8以後有新用法,理论上如下:
程式码:
variable_name = 10
f'get {variable_name=}'
执行:
get variable_name = 10
我切换版本到3.7.8再切回3.10.5之後,突然就不能用这个功能了
(会报文法错误)
然後我以前装的package也突然全部不能用了要重装
到底是为甚麽?还有救吗?
用的IDE是VSCODE,已经有把Activate Environment那个选项取消了
https://imgur.com/Latgr9d
另外,我用vscode内的notebook跑pip list,出来的和我的
C:\Users\User\AppData\Local\Programs\Python\
Python310\Lib\site-packages
底下的package一样多(约200项)
但是我用执行的方式跑指令pip list,却只有显示我最近重装的那几个package
(感觉是没有真的把版本切回3.10.5的样子,因为我查看
C:\Users\User\AppData\Local\Programs\Python\
Python37\Lib\site-packages
装的差不多就这几个东西)
补充,这是我的现状:
https://imgur.com/sirVxiK
右下编译器选3.10.5,执行起来path.sys显示就是在3.7.8那边
网路上教学都只教到改编译器那边,好像没有人讲编译器那边改过後还是不行该怎麽办
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.139.14.183 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1676956324.A.1A6.html
※ 编辑: fragmentwing (223.139.14.183 台湾), 02/21/2023 13:18:01
1F:→ fragmentwing: 嗯 找了个叫print(sys.path)的码来确认 02/21 16:22
2F:→ fragmentwing: 确实是给我用到Python37那边 02/21 16:22
3F:→ fragmentwing: 然後VSCODE右下角的切换似乎只是编辑介面上的切换 02/21 16:22
4F:→ fragmentwing: 完全不影响到实际上使用的编译器是哪边 02/21 16:23
※ 编辑: fragmentwing (223.139.14.183 台湾), 02/21/2023 16:50:01
5F:→ fragmentwing: 目前我只能直接删掉3.7.8 让vscode只有3.10能抓… 02/21 17:01
6F:→ fragmentwing: … 02/21 17:01
7F:→ fragmentwing: 最毛的是我就算重装3.7.8的时候选不要加入环境变数 02/21 17:06
8F:→ fragmentwing: 所以在vscode内搜寻不到3.7.8的环境变数 但是执行的 02/21 17:06
9F:→ fragmentwing: 时候还是会自动选择3.7.8……这纯粹是想气死我吗? 02/21 17:06
10F:推 TuCH: 学一下conda 02/21 17:33
11F:推 ddavid: VSCode 手动开终端机,以及按执行开启终端机,两者的设定 02/21 18:31
12F:→ ddavid: 点不同,要分别确认一下 02/21 18:33
13F:→ ddavid: 不过用 conda 的话应该不用特别做什麽额外设定就会抓到, 02/21 18:34
14F:→ ddavid: 除非真的搞来搞去搞烂了 02/21 18:34
15F:→ fragmentwing: 想问一下手动是指什麽?command line吗? 02/21 18:43
16F:→ fragmentwing: 如果是的话我也试过了QQ 02/21 18:44
17F:→ lycantrope: python.defaultInterpreterPath没设定 02/21 22:20
18F:→ lycantrope: 可以在同一资料夹内 .vscode/settings.json 里面指定 02/21 22:21
19F:→ lycantrope: 然後你关掉active env 在vscode开terminal当然不会帮 02/21 22:23
20F:→ lycantrope: 自动activate环境啊 02/21 22:24
21F:→ fragmentwing: 痾……照你说的做,不行欸,它好像就是会自动套用最 02/22 07:25
22F:→ fragmentwing: 新下载的那个编译器 02/22 07:25
23F:→ fragmentwing: 而且我去查你说的default,自始至终都是设给3.10.5 02/22 07:25
24F:→ lycantrope: 就算讲了解法你也听不懂,没救。 02/22 08:03
25F:→ fragmentwing: 你确定不是刚好你的解法在我这边不管用吗? 还是你的 02/22 08:45
26F:→ fragmentwing: setting.json不是我们按f1後用setting搜出来的那个? 02/22 08:45
27F:→ fragmentwing: 这里不是stack overflow讲话没必要这麽呛吧 02/22 08:45
29F:→ fragmentwing: 照你的说法,应该是改成这样?但还是行不通 02/22 08:50
30F:→ lycantrope: 设定放在another.py资料夹下的.vscode/settings.json 02/22 09:13
31F:→ lycantrope: vscode重新开资料夹才能覆写你之前的设定 02/22 09:13
32F:→ lycantrope: 在vscode本身设定又不影响已经设置的workplace 02/22 09:14
33F:→ fragmentwing: .py为什麽会是个「资料夹」? 02/22 09:28
34F:→ fragmentwing: 你的意思是应该开一个新folder然後在该folder内放一 02/22 09:28
35F:→ fragmentwing: 个setting.json来指向特定的编译器吗? 02/22 09:28
36F:→ fragmentwing: 啊 我可能找到答案了 是python installer造成的问题 02/22 09:49
37F:→ fragmentwing: 的样子 不过我还不确定怎麽解 02/22 09:49
38F:→ fragmentwing: 更正一下 比较准确的说法是python在windows的instal 02/22 09:52
39F:→ fragmentwing: ler 02/22 09:52
40F:推 Abieskawa: 我有遇到类似问题,後来使用conda (注:~/也不行)ac 03/02 10:22
41F:→ Abieskawa: tivate 环境的绝对路径给你参考 03/02 10:22
43F:推 lycantrope: 推楼上,有拍教学,佛心来着www 03/03 14:36
44F:推 s860134: 多学多看少质疑,都在讲同件事只是你听无 03/03 16:08
45F:→ fragmentwing: 这和l大讲的不同吧…… 03/06 18:40
46F:→ fragmentwing: 我是说h大讲的 另外h大声音好听 03/06 18:41
47F:→ fragmentwing: 应该说 层级上是不同的 反正照l大的方法是无法解决 03/06 18:46
48F:→ fragmentwing: 问题 应该真的只能用conda去解…… 03/06 18:46
49F:→ lycantrope: 你爽就好,现在不懂以後还是会碰到一样问题。 03/06 21:03
50F:→ fragmentwing: 我也只能说 你高兴 我高兴就好 03/06 21:51