日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Sublime插件开发 启动Anaconda并运行对应Python脚本

發布時間:2025/3/15 python 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Sublime插件开发 启动Anaconda并运行对应Python脚本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

啟動Anaconda并運行對應Python腳本

  • 事因
  • 簡介
    • Plugin
  • 啟動Anaconda并運行對應Python腳本
    • 創建Plugin腳本文件
      • autoOpenCommand腳本
      • autoOpen腳本
    • 設置Key Buildings
    • 測試
    • 遇到的問題
      • 臨時解決方案

事因

Python是一個非常方便的腳本語言,因此本人會經常使用到Python做一些事情。由于PyCharm太大,因此本人安裝了Sublime Text 3。在Sublime安裝了一些Anaconda插件和可運行插件后,嘗試run了一下,發現一些Python庫提示版本錯誤等問題;但是Anaconda終端控制臺運行同一個腳本卻不會報錯。

簡介

Sublime Text 3是支持自定義Command的,在Sublime Text 3安裝目錄中可以找到Sublime Text 3/Lib/Python38,里面有兩個腳本sublime.py和sublime_plugin.py。查看兩個文件的源代碼,發現其中sublime_plugin.py依賴sublime.py。

Plugin

Q:自定義Command如何創建呢?
A:Sublime工具欄中找到tools -> Developer -> new Plugin..,將文件保存在Sublime Text 3/Packages/User目錄下。
默認創建的Plugin代碼如下:

import sublime import sublime_pluginclass ExampleCommand(sublime_plugin.TextCommand):def run(self, edit):self.view.insert(edit, 0, "Hello, World!")

Q:如何驗證編寫的Command代碼是正確的?
A:在Sublime中使用 ctrl+` 可以打開Console,輸入view.run_command("example")即可執行ExampleCommand腳本。

Q:view.run_command(commandStr)中的commandStr是根據什么樣的規則來的?
A:AaaBbbCommand類的commandStr為aaa_bbb,aaaBbbCommand類的commandStr為aaa_bbb。

Q:該如何設置快捷鍵來運行自定義的Command?
A:Sublime中找到Perferences -> Key Buildings,在右邊窗口中輸入格式如{ "key" : ["快捷鍵"], "command" : "自定義命令" }的Json內容。

啟動Anaconda并運行對應Python腳本

創建Plugin腳本文件

Sublime工具欄中找到tools -> Developer -> new Plugin..,將下面兩個腳本文件保存在Sublime Text 3/Packages/User目錄下。

autoOpenCommand腳本

import os import sublime import sublime_pluginclass autoOpenCommand(sublime_plugin.TextCommand):def run(self, edit):# 獲取當前選中文件的路徑filepath = self.view.file_name()# 創建cmd命令commands = []# 進入Anaconda腳本目錄commands.append(r'cd C:\Users\xxx\Anaconda3\Scripts')# 激活Anaconda環境commands.append(r'activate.bat')# 進入autoOpenCommand腳本所在目錄commands.append(r'cd ' + os.path.abspath(os.path.dirname(__file__)))# 運行另外一個python程序: python autoOpen.py arg1commands.append(r'python autoOpen.py ' + filepath)# 制作成1行命令command = ""for i in range(len(commands)):command = command + commands[i] + (" & " if i != len(commands)-1 else "")# 開啟cmd并且運行commandcommand = r'%windir%\System32\cmd.exe /c "{0}"'.format(command)os.system(command)

autoOpen腳本

import os import sys import multiprocessingif __name__ == "__main__":# 獲取命令行輸入參數if len(sys.argv) <= 1:exit(0)# 由于傳入的文件可能包含空格, 因此需要進行拼接filepath = ""for i in range(len(sys.argv)):if i == 0:continuefilepath = filepath + " " + sys.argv[i]# 分隔目錄和文件名index = filepath.rfind('\\')# 命令commands = []# 進入Anaconda腳本目錄commands.append(r'cd C:\Users\xxx\Anaconda3\Scripts')# 激活Anaconda環境commands.append(r'activate.bat')# 進入Sublime選中腳本所在目錄commands.append(r'cd ' + filepath[:index])# 運行腳本commands.append(r'python ' + filepath[index+1:])# 制作成1行命令command = ""for i in range(len(commands)):command = command + commands[i] + (" & " if i != len(commands)-1 else "")command = r'%windir%\System32\cmd.exe /K "{0}"'.format(command)# 開啟一個進程p = multiprocessing.Process(target=os.system, args=(command,))p.start()

設置Key Buildings

Sublime中找到Perferences -> Key Buildings。

[{ "keys": ["f5"], "command": "auto_open" }, ]

測試

編寫腳本,按F5執行即可。

遇到的問題

由于Sublime是交互式運行的,因此不能直接開啟一個進程。autoOpenCommand類有一個錯誤,os.system(command)運行后并不會馬上結束,意味著Sublime將卡住,除非關閉Anaconda控制臺。

臨時解決方案

將autoOpenCommand腳本中的os.system(command)改為threading.Thread(target=os.system, args=(command,)).start()。

import os import threading import sublime import sublime_pluginclass autoOpenCommand(sublime_plugin.TextCommand):def run(self, edit):# 獲取當前選中文件的路徑filepath = self.view.file_name()# 創建cmd命令commands = []# 進入Anaconda腳本目錄commands.append(r'cd C:\Users\zengzhiwen.pinkz\Anaconda3\Scripts')# 激活Anaconda環境commands.append(r'activate.bat')# 進入autoOpenCommand腳本所在目錄commands.append(r'cd ' + os.path.abspath(os.path.dirname(__file__)))# 運行另外一個python程序: python autoOpen.py arg1commands.append(r'python autoOpen.py ' + filepath)# 制作成1行命令command = ""for i in range(len(commands)):command = command + commands[i] + (" & " if i != len(commands)-1 else "")# 開啟cmd并且運行commandcommand = r'%windir%\System32\cmd.exe /c "{0}"'.format(command)threading.Thread(target=os.system, args=(command,)).start()

總結

以上是生活随笔為你收集整理的Sublime插件开发 启动Anaconda并运行对应Python脚本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。