虽然目前的官方Python版本是3.6,但msys2为python3
提供了两个包:
msys/python3
,currently using 3.4 mingw64/mingw-w64-x86_64-python3
,currently using 3.5 那么我应该在何时以及如何使用哪个版本?我不能只使用Windows 3.6并以某种方式告诉pacman
使用它吗?或者我可以在msys / mingw版本中运行3.6并在Windows中使用它,这样我就不需要安装两个/三个了吗?
答案 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,但是两个版本都有不同的用例,这可能会令人困惑:
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.ini
和pip
的别名添加到我的.bashrc中:
python
这不是最干净的解决方案,但它在我的环境中也可以正常工作。另外,请记住,如果您运行alias python='$PYTHONPATH/../../python.exe'
alias pip='$PYTHONPATH/../../Scripts/pip.exe'
,它将不会指向正确的安装。
另一种无需创建别名的方法,上述所有方法都是将您的PATH更改为在msys PATH之前包括继承的Windows PATH。您可以手动编辑此文件,也可以在.bash_profile或.bashrc中添加一些内容。