使用msys2时应该安装哪些Python(以及如何安装)?

时间:2017-01-30 09:22:52

标签: python mingw msys2

虽然目前的官方Python版本是3.6,但msys2为python3提供了两个包:

那么我应该在何时以及如何使用哪个版本?我不能只使用Windows 3.6并以某种方式告诉pacman使用它吗?或者我可以在msys / mingw版本中运行3.6并在Windows中使用它,这样我就不需要安装两个/三个了吗?

3 个答案:

答案 0 :(得分:1)

这是我在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

要处理此错误“没有intltool或版本< 0.25.0,build_intl正在中止”执行以下操作:

$ 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

答案 1 :(得分:1)

为什么会有两个版本的Python,但是两个版本都有不同的用例,这可能会令人困惑:

  1. MINGW-Windows本机应用程序
  2. MSYS2-POSIX应用程序被仿真为可在Windows中运行

MINGW是指使用MINGW GCC编译器编译并以Win32 API为目标的可执行文件。 MSYS2是指由MSYS2 GCC编译器编译并使用POSIX仿真层的可执行文件。

作为用户,我理解这可能会造成混淆,为什么您要关注针对哪个编译器和API Python?好吧,您可能要使用的某些程序取决于在POSIX环境中运行。将这些应用程序移植到Windows将非常困难且耗时。在这些情况下,MSYS2提供了一个仿真层,以允许这些应用程序运行。不幸的是,使用此仿真层非常慢。

因此,通常来说,如果可以使用MINGW版本的Python,则应该这样做,因为它将更快。但是,如果您尝试运行依赖于POSIX环境的Python应用程序,则MSYS2提供了一个仿真层来帮助使其工作。

有关更多信息,Git for Windows Wiki提供了更详细的说明。

答案 2 :(得分:1)

这可能有点晚了,但是我在MSYS2中使用python的本地Windows安装。我这样做的方法是确保Python添加了环境变量。之后,我创建了一个新的Windows环境变量@Entity @Table(name = "tasks") public class Task implements Serializable { // ... @ManyToOne @JoinColumn(name = "user_id", referencedColumnName = "id") private User user; // ... } 。我还将MSYS设置为在PYTHONPATH=C:\Users\Glen.Nicholls\AppData\Local\Programs\Python\Python37\Lib\site-packages中继承。现在,我将MINGW64.inipip的别名添加到我的.bashrc中:

python

这不是最干净的解决方案,但它在我的环境中也可以正常工作。另外,请记住,如果您运行alias python='$PYTHONPATH/../../python.exe' alias pip='$PYTHONPATH/../../Scripts/pip.exe' ,它将不会指向正确的安装。

另一种无需创建别名的方法,上述所有方法都是将您的PATH更改为在msys PATH之前包括继承的Windows PATH。您可以手动编辑此文件,也可以在.bash_profile或.bashrc中添加一些内容。