tft每日頭條

 > 科技

 > windows python怎麼運行代碼

windows python怎麼運行代碼

科技 更新时间:2025-01-19 01:39:40

進擊的Coder.

崔慶才的個人公衆号,分享有關網絡爬蟲、Web開發、機器學習、技術心得、時事新聞、個人感悟等内容。

對于 Python 棧的小夥伴來說,miniconda 是一款非常棒的工具,它可以幫助我們快速地開啟虛拟環境,并在獨立的環境中使用特有的第三方庫,從而達到不同環境之間的隔離效果。

默認情況下,miniconda 會盡量減少對系統的影響。例如,默認安裝不會将任何 Python 信息添加到操作系統的默認路徑,也不需要管理員權限就可以進行安裝。這些看起來都非常棒,但這同樣意味着我們需要執行一些額外的步驟才能讓 Python 環境在标準的 Windows 提示一下的工作,對于新手來說,并不是特别友好。

幸運的是,Anaconda (fka Continuum) 提供了啟動 powershell 或命令提示符的所有基礎功能,默認安裝會創建一些快捷方式來做到這一點,但是,我們很難修改這些快捷方式來自定義工作目錄。

為了達到快速從某個目錄啟動 conda 的目的,我們自己創建一個快捷方式。

整體思路

我們一旦安裝了 miniconda,啟動 python shell 的首選方法就是使用 miniconda 的 activate.bat 文件來配置 shell 環境。在我的系統上(默認安裝 miniconda),文件存儲在這裡:C:/Users/luobo/AppData/Local/Continuum/miniconda3/Scripts/activate.bat 。

一般情況下,我們都不會直接在 conda 下面進行編碼,而是會創建一個工作環境。

當 conda 在 Windows 上次創建新環境時,該環境的默認目錄位置如下所示:C:/Users/luobo/AppData/Local/Continuum/miniconda3/envs/work 。我們可以将此完整路徑傳遞給 activate.bat 文件,它會為我們啟動并自動啟動并激活工作環境。

啟動難題的最後一部分是使用 cmd.exe /K 來執行一個 shell 命令,并返回激活環境成功的提示。

完整的命令看起來像這樣:

cmd.exe /K C:/Users/luobo/AppData/Local/Continuum/miniconda3/Scripts/activate.bat C:/Users/luobo/AppData/Local/Continuum/miniconda3/envs/work

好了,上面就是我們的一個整體編碼思路了,還是比較清晰的,下面就開始吧。

特殊文件夾

從上面的描述看一看到,我們的 miniconda 文件的路徑隐藏得很深,并且這個目錄還取決于登錄用戶的個人資料。所以為了我們制作的快捷方式具有通用性,顯然是不能進行硬編碼的。

這裡我們可以使用 winshell 這個第三方庫,它提供了訪問 Windows 上特殊目錄的快捷操作方式。這樣,我們的腳本應該可以在其他人的機器上無縫運行,并且可以跨越不同版本的 Windows 運行。

import winshell from pathlib import Path

如果我們想獲取用戶的配置文件目錄,我們可以使用文件夾功能。

profile = winshell.folder('profile')

Output:

'C:\\用戶\\luobo`

Winshell 提供對許多不同文件夾的訪問,這些文件夾可以通過其 CSIDL(常量特殊 ID 列表)進行訪問。

那麼通過上面的例子,我們也可以推導出來, minicodan 的目錄。

miniconda_base = Path(winshell.folder('CSIDL_LOCAL_APPDATA')) / 'Continuum' / 'miniconda3') miniconda_base.is_dir()

Output:

True

可以看到,通過測試,我們拿到的路徑是正确的。

我們需要的另一個位置就是 cmd.exe,我們可以通過 CSIDL_SYSTEM 獲得它。

win32_cmd = str(Path(winshell.folder('CSIDL_SYSTEM')) / 'cmd.exe')

注意到我們使用 str 将 Path 轉換為字符串,這樣做是因為 winshell 期望它的所有輸入都是字符串,它不知道如何直接處理 pathlib 對象。

生成快捷方式

在 Windows 上使用快捷方式時,可以右鍵單擊快捷方式圖标并查看屬性。我們大多數人可能見過這樣的事情:

windows python怎麼運行代碼(10行代碼用)1

Winshell 提供了一個轉儲功能,使實際的快捷方式屬性更容易查看。

例如,如果我們想查看開始菜單中現有的快捷方式,我們需要獲取 .lnk 文件的完整路徑,然後創建一個快捷方式對象并使用 dump 顯示值。

lnk = Path(winshell.programs()) / "Anaconda3 (64-bit)" / "Anaconda Prompt (miniconda3).lnk" shortcut = winshell.shortcut(str(lnk)) shortcut.dump()

Output:

{ C:\Users\luobo\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (miniconda3).lnk -> C:\Windows\System32\cmd.exe arguments: "/K" C:\Users\luobo\AppData\Local\Continuum\miniconda3\Scripts\activate.bat C:\Users\luobo\AppData\Local\Continuum\miniconda3 description: Anaconda Prompt (miniconda3) hotkey: 0 icon_location: ('C:\\Users\\luobo\\AppData\\Local\\Continuum\\miniconda3\\Menu\\Iconleak-Atrous-Console.ico', 0) path: C:\Windows\System32\cmd.exe show_cmd: normal working_directory: %HOMEPATH% }

這是我們需要用來創建新快捷鍊接的所有信息的簡單展示。

現在我們知道了我們需要的信息,我們就可以創建自己的快捷方式了。

arg_str = "/K " str(miniconda_base / "Scripts" / "activate.bat") " " str(miniconda_base / "envs" / "work")

我們還可以選擇傳入一個需要包含完整路徑和圖标索引的圖标。

在這個例子中,我使用的是 miniconda 使用的默認圖标。

icon = str(miniconda_base / "Menu" / "Iconleak-Atrous-Console.ico")

最後需要做的就是在指定的工作目錄中啟動 conda 環境。

我們假設有一個 My Documents/py_work 目錄,其中包含我們所有的 python 代碼。我們可以使用 CSIDL_PERSONAL 訪問我的文檔并構建 py_work 的完整路徑。

my_working = str(Path(winshell.folder('CSIDL_PERSONAL')) / "py_work")

現在所有變量都已定義了,我們在桌面上創建一個快捷鍊接:

link_filepath = str(desktop / "python_working.lnk") with winshell.shortcut(link_filepath) as link: link.path = win32_cmd link.description = "Python(work)" link.arguments = arg_str link.icon_location = (icon, 0) link.working_directory = my_working

如果一切不出現意外,我們就可以在桌面上看到一個快捷方式了。

windows python怎麼運行代碼(10行代碼用)2

完整代碼

import winshell from pathlib import Path # Define all the file paths needed for the shortcut # Assumes default miniconda install desktop = Path(winshell.desktop()) miniconda_base = Path( winshell.folder('CSIDL_LOCAL_APPDATA')) / 'Continuum' / 'miniconda3' win32_cmd = str(Path(winshell.folder('CSIDL_SYSTEM')) / 'cmd.exe') icon = str(miniconda_base / "Menu" / "Iconleak-Atrous-Console.ico") # This will point to My Documents/py_work. Adjust to your preferences my_working = str(Path(winshell.folder('CSIDL_PERSONAL')) / "py_work") link_filepath = str(desktop / "python_working.lnk") # Build up all the arguments to cmd.exe # Use /K so that the command prompt will stay open arg_str = "/K " str(miniconda_base / "Scripts" / "activate.bat") " " str( miniconda_base / "envs" / "work") # Create the shortcut on the desktop with winshell.shortcut(link_filepath) as link: link.path = win32_cmd link.description = "Python(work)" link.arguments = arg_str link.icon_location = (icon, 0) link.working_directory = my_working

如果覺得文章不錯, 記得點贊關注收藏支持一波哦

以上文章來源于進擊的Coder ,作者周蘿蔔

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved