關于pytorch虛擬環境及具體bug問題修改

? ? ? ? ?本篇博客包含對于虛擬環境概念的講解和代碼實現過程中相關bug的解決

關于虛擬環境

????????我的pytorch虛擬環境在D盤,相應python解釋器也在D盤(一起),但是我的pycharm中的項目在C盤,使用的是pytorch的虛擬環境,這是為什么行得通呢?

????????后來知道 Python 虛擬環境的核心邏輯是?“解釋器與項目路徑分離”,只要 PyCharm 能正確找到虛擬環境中的 Python 解釋器,無論解釋器和項目文件在哪個磁盤分區,都能正常工作。具體原因如下:

1. 虛擬環境的本質:獨立的解釋器與依賴庫

????????虛擬環境(如你在 D 盤的 PyTorch 環境)本質上是一個?包含獨立 Python 解釋器(python.exe)和依賴庫文件夾(site-packages)的目錄。例如,它的路徑可能是:
D:\envs\pytorch-gpu\python.exe

????????這個環境的核心作用是:

  • 提供一個獨立的 Python 解釋器,不依賴系統默認的 Python。
  • 所有安裝的庫(如?torchtensorboard)都保存在該環境的?site-packages?文件夾中(如?D:\envs\pytorch-gpu\Lib\site-packages)。

????????只要 PyCharm 能通過路徑找到這個?python.exe,就能調用該環境的解釋器和依賴庫,與項目文件(C 盤)的位置無關。

2. PyCharm 的工作邏輯:關聯解釋器而非依賴路徑

????????PyCharm 管理項目時,關鍵是?“指定項目使用哪個 Python 解釋器”,而非 “解釋器必須和項目在同一磁盤”。具體流程是:

1. 你在 PyCharm 中為項目指定了解釋器路徑(D 盤的?pytorch-gpu?環境)。

2. PyCharm 會記錄這個路徑,并在運行代碼、安裝依賴時,強制使用該解釋器:

  • 當你在 PyCharm 終端運行?pip install xxx?時,實際調用的是?D:\envs\pytorch-gpu\Scripts\pip.exe,安裝的庫會存到 D 盤的?site-packages
  • 當你運行項目代碼時,PyCharm 會用?D:\envs\pytorch-gpu\python.exe?執行 C 盤的項目文件(.py)。

????????這種 “解釋器在 D 盤,項目在 C 盤” 的分離,就像 “用 D 盤的播放器播放 C 盤的視頻文件” 一樣自然,完全不沖突。

3. 跨磁盤工作的底層原理

????????文件讀取機制:操作系統(Windows)允許程序跨磁盤讀取文件,只要路徑正確(例如,D 盤的 Python 解釋器可以讀取 C 盤的?.py?代碼文件)。

????????環境變量與路徑解析:虛擬環境被激活時,PyCharm 會臨時調整終端的環境變量,讓?pythonpip?等命令指向 D 盤的解釋器,確保所有操作都基于該環境。

關于tensorboard的實戰bug問題

????????原代碼如下:

from torch.utils.tensorboard import SummaryWriter
# ctrl + 右鍵 也可以查看這個類的說明writer = SummaryWriter('log')# 指定日志保存目錄# writer.add_image()
for i in range(100):writer.add_scalar('y=x', i, i) # 添加標量數據writer.close()

????????在終端運行時,大家可以很清楚看到,使用python來運行和直接使用類來運行的差別,前者可以正常運行,后者會報錯,找不到路徑

(pytorch-gpu) PS C:\Users\admin\Desktop\huahuo\pytorch_learn\pycharm> python -m tensorboard.main --logdir=log
TensorFlow installation not found - running with reduced feature set.
Serving TensorBoard on localhost; to expose to the network, use a proxy or pass --bind_all
TensorBoard 2.19.0 at http://localhost:6006/ (Press CTRL+C to quit)(pytorch-gpu) PS C:\Users\admin\Desktop\huahuo\pytorch_learn\pycharm> tensorboard --logdir=log
tensorboard : 無法將“tensorboard”項識別為 cmdlet、函數、腳本文件或可運行程序的名稱。請檢查名稱的拼寫,如果包括路徑,請確保路徑正確,然后再試一次。
所在位置 行:1 字符: 1
+ tensorboard --logdir=log
+ ~~~~~~~~~~~+ CategoryInfo          : ObjectNotFound: (tensorboard:String) [], CommandNotFoundException+ FullyQualifiedErrorId : CommandNotFoundException

? ? ? ? 差別原因在于:在命令行中直接運行?tensorboard?命令和通過 Python 模塊(python -m tensorboard.main)調用 TensorBoard 時,系統查找可執行文件的方式存在差異

PATH 環境變量方面

  • 當使用?python -m tensorboard.main?命令時,Python 會依據自身的模塊搜索路徑來查找 TensorBoard,這和環境變量?PATH?沒有關系。

  • 而直接輸入?tensorboard?命令時,系統會在?PATH?環境變量所列出的目錄里查找對應的可執行文件。要是 TensorBoard 的可執行文件所在目錄沒有被包含在?PATH?中,就會出現找不到命令的錯誤。

Anaconda 環境的特性

  • Anaconda 環境在激活之后,會動態地對?PATH?進行修改,把環境中的?Scripts?目錄添加進去。不過,這種修改有時候可能會失敗或者不完整。

  • TensorBoard 的可執行文件一般位于 Anaconda 環境的?Scripts?文件夾中,比如:

C:\Users\admin\anaconda3\envs\pytorch-gpu\Scripts\tensorboard.exe

解決辦法

方法 1:使用 Python 模塊調用

????????推薦繼續采用?python -m tensorboard.main --logdir=log?這種方式來啟動 TensorBoard,因為它不依賴?PATH?環境變量,所以更加可靠。

待續

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/89478.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/89478.shtml
英文地址,請注明出處:http://en.pswp.cn/web/89478.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

U盤量產工具與性能優化完全指南

本文還有配套的精品資源,點擊獲取 簡介:U盤量產工具是IT行業中的專業軟件,用于批量生產或修復U盤。安國和銀燦是兩個提供U盤量產工具的主控芯片制造商,提供初始化、格式化、分區管理、性能優化、故障修復、個性化定制、固件升級…

Golang http開發實戰:構建RESTful API保姆級教程

目錄 章節1:RESTful API的精髓與Go的Web開發哲學 RESTful API的設計原則 Go的http包核心組件 實戰:第一個RESTful API端點 章節2:設計優雅的RESTful路由 路由設計的注意事項 使用Gorilla Mux實現動態路由 章節3:請求與響應的藝術:解析與格式化 解析請求數據 統一…

UGUI 性能優化系列:第一篇——基礎優化與資源管理

UGUI 性能優化系列:第一篇——基礎優化與資源管理 UGUI 性能優化系列:第二篇——Canvas 與 UI 元素管理 在 Unity 游戲中,用戶界面(UI)是玩家與游戲交互的核心。然而,不當的 UGUI 使用常常成為游戲性能的…

多端協同的招聘系統源碼開發指南:小程序+APP一體化設計

當下,很多企業選擇搭建屬于自己的多端協同招聘平臺,尤其是中大型人力資源公司、連鎖品牌企業,以及同城服務平臺,更是將“小程序APP”一體化招聘系統視為提升效率、降低用工成本的利器。 今天,筆者將從源碼開發的角度&a…

Maven 配置文件核心配置:本地倉庫、鏡像與 JDK 版本

Maven 配置文件核心配置:本地倉庫、鏡像與 JDK 版本 在 Maven 項目開發中,合理配置 settings.xml 文件能顯著提升依賴管理效率。本文將聚焦本地倉庫、鏡像加速和 JDK 版本這三個核心配置,結合 IDEA 環境詳細講解配置方法與作用。 一、Maven 配…

【時時三省】(C語言基礎)通過指針引用字符串

山不在高,有仙則名。水不在深,有龍則靈。 ----CSDN 時時三省如在printf函數中輸出一個字符串。這些字符串都是以直接形式(字面形式)給出的,在一對雙撇號中包含若干個合法的字符。使用字符串的更加靈活方便的方法——通…

【Linux驅動-快速回顧】一文快速理解GIC內部寄存器對中斷的控制

第一部分:GIC的功能和組成 1. GIC要解決的根本問題 在一個復雜的片上系統(SoC)中,有非常多的硬件模塊(如定時器、串口、按鍵、DMA等),它們都需要在完成任務或遇到特定事件時通知CPU。同時&#…

【IoTDB 線上小課 17】開源 ≠ 免費,3 分鐘總結開源商用指南

【IoTDB 視頻小課】第十七期,解答你最關心的開源商業使用問題!關于 IoTDB,關于物聯網,關于時序數據庫,關于開源...一個問題重點,3-5 分鐘,我們講給你聽:原來開源商業化有這么多規則開…

VUE項目學習筆記 v-for綁定數據,該數據異步獲取,同時需要對v-for的DOM節點進行js操作

問題描述:項目里有一個輪播圖,輪播圖的圖片數據從服務器獲取,用v-for生成DOM在頁面中顯示,輪播圖插件會通過new Swiper給DOM添加CSS、事件等,實現輪播效果。在這里存在操作順序問題:當服務器返回圖片數據后…

Science | 如何利用“T細胞+組蛋白乙酰化”兩大國自然熱點?T細胞耗竭機制與代謝-表觀遺傳調控的新范式

CD8?T細胞耗竭(T cell exhaustion)是腫瘤免疫治療的核心瓶頸,其表觀遺傳重塑機制(如組蛋白修飾)是當前國自然重點資助的前沿方向。耗竭T細胞(TEX)是指在慢性感染(如持續性病毒感染&…

Logback 配置的利器:深入理解<property>與<variable>

在構建現代 Java 應用程序時,日志是不可或缺的一部分。一個健壯的日志系統不僅能幫助我們監控應用程序的運行狀態,還能在問題發生時提供關鍵的診斷信息。Logback 作為 SLF4J 的一個流行實現,以其高性能和靈活的配置而廣受開發者喜愛。 然而&a…

Java中excel字典轉換

? 背景說明EasyExcel 原生的 ExcelProperty 注解不支持 dictType(不像那樣有 Excel(dictType"xxx")),所以如果你想實現字典翻譯功能,就需要自己實現 Converter 接口,比如 DictConvert。? 什么是 DictConve…

數據結構-3(雙向鏈表、循環鏈表、棧、隊列)

一、思維導圖二、雙向循環鏈表的判空、尾插、遍歷(反向)、尾刪class Node:def __init__(self, data):self.data dataself.next Noneself.prior Noneclass circularDoublyLinkedList():def __init__(self):self.head Noneself.tail Noneself.size 0def isEmpty(self):retu…

IDEA運行Tomcat一直提示端口被占用(也查不到該端口)

首先查看是否是因為Java程序異常終止,進程沒有完全釋放導致。打開資源管理器,找到所有的java.exe,強制結束任務。如果仍然不行,那就極可能還是開啟了hyper-V虛擬化,查看排除的tcp端口范圍端口號沒被占用卻提示占用&…

AWS Lambda 最佳實踐:構建高效無服務器應用的完整指南

引言 AWS Lambda 作為無服務器計算的核心服務,讓開發者能夠專注于業務邏輯而無需管理服務器。本文將通過實際案例和代碼示例,分享 Lambda 開發中的關鍵最佳實踐。 1. 函數設計原則 單一職責原則 每個 Lambda 函數應該只做一件事,這樣更容易測試、維護和擴展。 # ? 不推…

29、鴻蒙Harmony Next開發:深淺色適配和應用主題換膚

目錄 應用深淺色適配 應用跟隨系統的深淺色模式 應用主動設置深淺色模式 系統默認判斷規則 使用建議與限制 設置應用內主題換膚 概述 自定義主題色 設置應用內組件自定義主題色 設置應用局部頁面自定義主題風格 設置應用頁面局部深淺色 系統缺省token色值 應用深淺…

源鑒SCA4.9︱多模態SCA引擎重磅升級,開源風險深度治理能力再次進階

SCA技術已成為數字供應鏈開源治理的關鍵入口。源鑒SCA深度融合懸鏡原創專利級AI智能代碼疫苗技術,是國內首款集源碼組件成分分析、代碼成分溯源分析、制品成分二進制分析、容器鏡像成分掃描、運行時成分動態追蹤及開源供應鏈安全情報預警分析等六大核心引擎為一體的…

Git語義化提交規范及提交模板設置

Git語義化提交規范(Conventional Commits) 📚 常見的語義化提交類型包括:類型含義說明feat? 新增功能(feature)fix🐛 修復 bugdocs📚 修改文檔(如 README)st…

用TensorFlow進行邏輯回歸(五)

Softmax分類#List3-50%matplotlib inlineimport numpy as npimport tensorflow as tfimport matplotlib.pyplot as pltx1_label0 np.random.normal(1, 1, (100, 1))x2_label0 np.random.normal(1, 1, (100, 1))x1_label1 np.random.normal(5, 1, (100, 1))x2_label1 np.ran…

基于 Django + 協同過濾算法的電影推薦系統設計與實現

🎬 基于 Django 協同過濾算法的電影推薦系統設計與實現?? 本項目由成都理工大學宜賓校區的三位同學曾銘楊、楊皓麟、陳禧錦共同完成。項目以豆瓣電影數據為基礎,通過協同過濾算法為用戶構建個性化電影推薦服務,是一款集數據爬取、推薦算法…