簡體   English   中英

使用 msys2 時我應該安裝哪個 Python(以及如何安裝)?

[英]Which Python should I install (and how) when using msys2?

雖然當前的官方 Python 版本是 3.6,但 msys2 為python3提供了兩個包:

那么我應該在何時以及如何使用哪個版本? 我不能只使用 Windows 3.6 並以某種方式告訴pacman使用它嗎? 或者我可以在 msys/mingw'd 版本中運行 3.6 並在 Windows 中使用它,所以我不需要兩個/三個安裝?

這是我在 msys2 上用來安裝 python3 的:

$ pacman -Syuu

關閉並重新啟動 msys2。

$ pacman -S mingw-w64-x86_64-python3-bsddb3 mingw-w64-x86_64-gexiv2 mingw-w64-x86_64-ghostscript mingw-w64-x86_64-python3-cairo mingw-w64-x86_64-python3-gobject mingw-w64-x86_64-python3-icu mingw-w64-x86_64-iso-codes mingw-w64-x86_64-hunspell mingw-w64-x86_64-hunspell-en mingw-w64-x86_64-enchant

要處理此錯誤“No intltool or version < 0.25.0, build_intl is aborting”,請執行以下操作:

$ pacman -S intltool

添加這些來測試:

$ pacman -S mingw-w64-x86_64-python3-lxml
$ pacman -S mingw-w64-x86_64-python3-jsonschema

執行此命令以驗證 python3 是否已正確安裝:

$ python3 --version
Python 3.6.4

詳情請參見https://www.gramps-project.org/wiki/index.php?title=Gramps_for_Windows_with_MSYS2

為什么有兩個版本的 Python 可能會令人困惑,但它們都服務於不同的用例:

  1. MINGW - Windows 本機應用程序
  2. MSYS2 - 模擬在 Windows 中工作的 POSIX 應用程序

MINGW 是指使用 MINGW GCC 編譯器編譯並以 Win32 API 為目標的可執行文件。 MSYS2 是指由 MSYS2 GCC 編譯器編譯並使用 POSIX 仿真層的可執行文件。

我理解作為用戶這可能會令人困惑,你為什么關心 Python 是針對哪個編譯器和 API 編譯的? 好吧,您可能想要使用的某些程序依賴於在 POSIX 環境中運行。 將這些應用程序移植到 Windows 將非常困難和耗時。 在這些情況下,MSYS2 提供了一個仿真層來允許這些應用程序工作。 不幸的是,使用這個仿真層非常非常慢。

所以總的來說,如果你可以使用 MINGW 版本的 Python,你應該使用它,因為它會快得多。 但是,如果您嘗試運行依賴於 POSIX 環境的 Python 應用程序,那么 MSYS2 提供了一個仿真層來幫助使其工作。

有關更多信息, Git for Windows Wiki提供了更詳細的解釋。

這可能有點晚了,但我在 MSYS2 中使用 Python 的本機 Windows 安裝。 我這樣做的方法是確保 Python 添加了環境變量。 在此之后,我創建了一個新的 Windows 環境變量PYTHONPATH=C:\\Users\\Glen.Nicholls\\AppData\\Local\\Programs\\Python\\Python37\\Lib\\site-packages 我還將 MSYS 設置為在MINGW64.ini繼承。 現在,我將pippython的別名添加到我的 .bashrc 中:

alias python='$PYTHONPATH/../../python.exe'
alias pip='$PYTHONPATH/../../Scripts/pip.exe'

這不是最干凈的解決方案,但它在我的環境中工作得很好。 另外,請記住,如果您運行which python它不會指向正確的安裝。

另一種不創建別名和上述所有內容的方法是更改​​您的 PATH 以在 msys PATH 之前包含繼承的 Windows PATH。 您可以手動編輯它,也可以在 .bash_profile 或 .bashrc 中添加一些花哨的東西。

暫無
暫無

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

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