看板 Python 關於我們 聯絡資訊
如題 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://www.ptt.cc/bbs/Python/M.1676956324.A.1A6.html ※ 編輯: fragmentwing (223.139.14.183 臺灣), 02/21/2023 13:18:01
fragmentwing: 嗯 找了個叫print(sys.path)的碼來確認 02/21 16:22
fragmentwing: 確實是給我用到Python37那邊 02/21 16:22
fragmentwing: 然後VSCODE右下角的切換似乎只是編輯介面上的切換 02/21 16:22
fragmentwing: 完全不影響到實際上使用的編譯器是哪邊 02/21 16:23
※ 編輯: fragmentwing (223.139.14.183 臺灣), 02/21/2023 16:50:01
fragmentwing: 目前我只能直接刪掉3.7.8 讓vscode只有3.10能抓… 02/21 17:01
fragmentwing: … 02/21 17:01
fragmentwing: 最毛的是我就算重裝3.7.8的時候選不要加入環境變數 02/21 17:06
fragmentwing: 所以在vscode內搜尋不到3.7.8的環境變數 但是執行的 02/21 17:06
fragmentwing: 時候還是會自動選擇3.7.8……這純粹是想氣死我嗎? 02/21 17:06
TuCH: 學一下conda 02/21 17:33
ddavid: VSCode 手動開終端機,以及按執行開啟終端機,兩者的設定 02/21 18:31
ddavid: 點不同,要分別確認一下 02/21 18:33
ddavid: 不過用 conda 的話應該不用特別做什麼額外設定就會抓到, 02/21 18:34
ddavid: 除非真的搞來搞去搞爛了 02/21 18:34
fragmentwing: 想問一下手動是指什麼?command line嗎? 02/21 18:43
fragmentwing: 如果是的話我也試過了QQ 02/21 18:44
lycantrope: python.defaultInterpreterPath沒設定 02/21 22:20
lycantrope: 可以在同一資料夾內 .vscode/settings.json 裡面指定 02/21 22:21
lycantrope: 然後你關掉active env 在vscode開terminal當然不會幫 02/21 22:23
lycantrope: 自動activate環境啊 02/21 22:24
fragmentwing: 痾……照你說的做,不行欸,它好像就是會自動套用最 02/22 07:25
fragmentwing: 新下載的那個編譯器 02/22 07:25
fragmentwing: 而且我去查你說的default,自始至終都是設給3.10.5 02/22 07:25
lycantrope: 就算講了解法你也聽不懂,沒救。 02/22 08:03
fragmentwing: 你確定不是剛好你的解法在我這邊不管用嗎? 還是你的 02/22 08:45
fragmentwing: setting.json不是我們按f1後用setting搜出來的那個? 02/22 08:45
fragmentwing: 這裡不是stack overflow講話沒必要這麼嗆吧 02/22 08:45
fragmentwing: https://imgur.com/eVamSYs 02/22 08:49
fragmentwing: 照你的說法,應該是改成這樣?但還是行不通 02/22 08:50
lycantrope: 設定放在another.py資料夾下的.vscode/settings.json 02/22 09:13
lycantrope: vscode重新開資料夾才能覆寫你之前的設定 02/22 09:13
lycantrope: 在vscode本身設定又不影響已經設置的workplace 02/22 09:14
fragmentwing: .py為什麼會是個「資料夾」? 02/22 09:28
fragmentwing: 你的意思是應該開一個新folder然後在該folder內放一 02/22 09:28
fragmentwing: 個setting.json來指向特定的編譯器嗎? 02/22 09:28
fragmentwing: 啊 我可能找到答案了 是python installer造成的問題 02/22 09:49
fragmentwing: 的樣子 不過我還不確定怎麼解 02/22 09:49
fragmentwing: 更正一下 比較準確的說法是python在windows的instal 02/22 09:52
fragmentwing: ler 02/22 09:52
Abieskawa: 我有遇到類似問題,後來使用conda (註:~/也不行)ac 03/02 10:22
Abieskawa: tivate 環境的絕對路徑給你參考 03/02 10:22
lycantrope: 推樓上,有拍教學,佛心來著www 03/03 14:36
s860134: 多學多看少質疑,都在講同件事只是你聽無 03/03 16:08
fragmentwing: 這和l大講的不同吧…… 03/06 18:40
fragmentwing: 我是說h大講的 另外h大聲音好聽 03/06 18:41
fragmentwing: 應該說 層級上是不同的 反正照l大的方法是無法解決 03/06 18:46
fragmentwing: 問題 應該真的只能用conda去解…… 03/06 18:46
lycantrope: 你爽就好,現在不懂以後還是會碰到一樣問題。 03/06 21:03
fragmentwing: 我也只能說 你高興 我高興就好 03/06 21:51