繁体   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