亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

VSCode + Pytest:“錯誤:TypeError:無法讀取未定義的屬性'$'”

VSCode + Pytest:“錯誤:TypeError:無法讀取未定義的屬性'$'”

嚕嚕噠 2022-05-24 16:13:47
我正在嘗試按照指南 @ https://code.visualstudio.com/docs/python/testing執行 2 個非常基本的單元測試。但是,在嘗試運行單元測試時,我收到錯誤:錯誤:TypeError:無法讀取未定義的屬性“$”我在Windows 10,Python 3.7.4 上,使用最新版本的 VSCode。在第一次嘗試運行測試(使用最新版本的 Pytest)時,我收到錯誤“錯誤:TypeError:無法讀取未定義的屬性 '$' ”。這導致我:https ://github.com/microsoft/vscode-python/issues/6990然后,我嘗試使用概述的 pip 命令將我的 Pytest 降級到以前的版本(5.0.1)。但是,“pip”命令未被識別,所以我認為這是我在使用之前必須在 VSCode 中啟用的東西。進一步的谷歌搜索讓我了解到,在安裝任何版本的 Python > 3.0 時,它應該默認包含在內。然后我認為它可能需要擴展,所以我將 pip-packages 擴展添加到 VSCode。重新啟動并再次嘗試 - 降級 Pytest 時出現同樣的錯誤。進一步的谷歌搜索導致我:如何將 pip 與 Visual Studio Code 一起使用,該代碼指向調整系統變量的說明@如何在 Windows 中添加到 PYTHONPATH,以便它找到我的模塊/包?.然后我嘗試調整這些變量,但它似乎只會導致進一步的問題,所以我取消了這些更改。然后我問了一個朋友,他說不要那么復雜,建議我先設置一個虛擬環境。我沿著 Venv 路徑走下去,在設置了一堆問題之后,我成功了,并且能夠將我的 Venv 設置為解釋器以及在 Venv 上安裝 Pytest。我嘗試再次執行測試,現在在 Venv 中并收到與以前相同的錯誤。這讓我回到:https ://github.com/microsoft/vscode-python/issues/6990按照 github 線程中的建議,我能夠成功地將 Venv 中的 Pytest 降級到 5.0.1,然后重新啟動 VScode 并再次執行測試。同樣的錯誤。我找不到任何進一步的信息 - 降級 Pytest 似乎對其他人有用。我要測試的代碼是:inc_dec.py:def increment(x):    return x + 1def decrement(x):    return x - 1我試圖執行的測試用例是:pytest_test.py:import inc_dec    # The code to testdef test_increment():    assert inc_dec.increment(3) == 4def test_decrement():    assert inc_dec.decrement(3) == 4我希望第一個單元測試通過,第二個單元測試失敗。相反,我收到錯誤:錯誤:TypeError:無法讀取未定義的屬性“$”
查看完整描述

1 回答

?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

好吧 - 經過多次頭痛之后,我的問題相當簡單,但由于缺乏經驗對我來說并不明顯。

基本上 - 我有:

  • 安裝了一個包來創建虛擬環境(pip install virtualenv)

  • 使用命令 virtualenv C:/path/to/venv/folder 創建虛擬環境

  • 在 VSCode 設置中,我搜索了“虛擬環境”,找到了指定我的虛擬環境文件夾的設置

  • 在這一點上 - 我已經讀到我需要“激活”我剛剛創建的虛擬環境。我首先在這里嘗試了激活說明:https ://virtualenv.pypa.io/en/stable/userguide/但收到錯誤,所以我(錯誤地)認為我可以通過在 VSCode GUI 中選擇它作為解釋器來激活它

  • 然后我安裝了 Pytest,嘗試運行單元測試但失敗了,所以我再次將其降級到 5.0.1 并再次嘗試 - 但仍然失敗。這就是我來到 StackOverflow 的地方

  • 我決定再試一次 - 刪除了我的 venv,確保從全局環境中卸載了 Pytest,重新添加了 venv 等。

  • 此時 - 在嘗試運行激活命令時,我決定進一步探索我收到的錯誤消息,這導致我:https ://superuser.com/questions/106360/how-to-enable-execution-of- powershell 腳本

  • 原來 - 我沒有足夠的權限來運行激活腳本,所以我的 venv 從來沒有被“激活”,我運行的安裝和降級 Pytest 的命令被應用于全局環境,而不是 venv

  • 我使用 set-executionpolicy remotesigned 更新了我的權限(通過 windows powershell 作為管理員)

  • 然后我再次嘗試激活腳本(成功),安裝了最新版本的 Pytest 以查看它是否可以工作(我得到了同樣的錯誤),然后降級到 5.0.1,并再次運行測試

  • 成功 :)


查看完整回答
反對 回復 2022-05-24
  • 1 回答
  • 0 關注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號