簡體   English   中英

Python 3.x 拖放在 Windows 中損壞

[英]Python 3.x Drag-And-Drop Broken in Windows

以前,我安裝了 Python 3.7.4 並且在 Win10 上運行良好。 然后,第 3 方安裝程序(我不知道)安裝了 Python 2.7 ......這完全淹沒了我的 Python 環境(呃)。 在刪除 Python 2.7 並運行 Python 3.7.4 的修復重新安裝后,它大部分都已備份並運行 - 除了能夠拖放到 .py 文件之外。

在 Windows ExplorerPython中拖放到 Python 腳本上

注冊表:

HKCR\.py=Python.File (when I first checked, it was set to py_auto_file, so I did have to change this)
HKCR\Python.File\shell\open\command="C:\Users\xxx\AppData\Local\Programs\Python\Python37-32\python.exe" "%1"
HKCR\Python.File\shellex\DropHandler= I've tried {60254CA5-953B-11CF-8C96-00AA00B8708C}, {86C86720-42A0-1069-A2E8-08002B30309D}, and {BEA218D2-6950-497B-9434-61683EC065FE}

通過上述更改,我能夠在拖放到 .py 文件時啟動 Python,但 sys.argv 不包含文件名(僅設置了 argv[0],而不是 argv[1])。 顯然,我在每次測試之間重新啟動 Windows Explorer。 在過去的幾個小時里,我一直在搜索和閱讀,但我發現的所有內容幾乎都包含上述 3 項更改的一些變體。

通過將文件拖動到 a.py 腳本來啟動 Python 時為什么不會設置 argv[1] 的任何想法?

鑒於它是 windows,您是否嘗試過重新啟動?

我設法通過以下方式解決了這個問題:

  • 進行 Python 3 的修復重新安裝
  • 對 Python Launcher 進行修復重新安裝
  • 創建 HKCU\Software\Classes\Python.File\shellex\DropHandler,默認={BEA218D2-6950-497B-9434-61683EC065FE}
  • 修改 HKLM\Software\Classes\Python.File\shell\open\command,設置 default="C:\Users\my_user_name\AppData\Local\Programs\Python\Python37-32\python.exe" "%1" % *

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM