【发布时间】:2023-03-16 06:24:01
【问题描述】:
我在 Win 10 下使用 Msys2 便携版。 我有 2 个 python 3.8 安装。原来的问题是这样问的。我现在确定是这样,所以我暂时想处理他们的维护。
我还发布了另一个相关问题Msys2: readline in two python installations
我在下面发布两者的信息。
我的问题是:
它们会相互干扰吗? 如果是这样,我应该处理哪些步骤/配置? (
PYTHONPATH、site-packages等)在不破坏另一个的情况下移除其中任何一个是否安全? 在我看来,下面的依赖关系没有风险,但我不确定这是否足以回答这个问题。
最好保留哪一个? 我的意思是通过 Eclipse CDT 使用
numpy、pandas、gcc-toolchain 和调试器,以及许多其他软件包。
PS1: 这是对 python2 的补充,同样的问题也适用。
PS2: 我觉得奇怪的是可用的子版本并不完全相同,即使版本都是 3.8.2。
PS3:
这两个python很可能是this "play"的主角升级,python 3.8(之前的3.8.1)升级到mingw-w64-x86_64-python 3.8.2-2,python 3.7升级到python 3.8.2-1。
提供 python 的包
$ pacman -Sl | grep "python " | grep "installed"
mingw64 mingw-w64-x86_64-python 3.8.2-2 [installed]
msys python 3.8.2-1 [installed]
关于每个的附加信息(依赖项等)
$ pacman -Qi mingw-w64-x86_64-python
Name : mingw-w64-x86_64-python
Version : 3.8.2-2
Description : A high-level scripting language (mingw-w64)
Architecture : any
URL : https://www.python.org/
Licenses : PSF
Groups : None
Provides : mingw-w64-x86_64-python3=3.8.2
Depends On : mingw-w64-x86_64-gcc-libs mingw-w64-x86_64-expat mingw-w64-x86_64-bzip2 mingw-w64-x86_64-libffi mingw-w64-x86_64-mpdecimal
mingw-w64-x86_64-ncurses mingw-w64-x86_64-openssl mingw-w64-x86_64-sqlite3 mingw-w64-x86_64-tcl mingw-w64-x86_64-tk mingw-w64-x86_64-zlib
mingw-w64-x86_64-xz
Optional Deps : None
Required By : mingw-w64-x86_64-gdb mingw-w64-x86_64-glib2 mingw-w64-x86_64-gtest mingw-w64-x86_64-mono mingw-w64-x86_64-postgresql
mingw-w64-x86_64-python-apipkg mingw-w64-x86_64-python-appdirs mingw-w64-x86_64-python-atomicwrites mingw-w64-x86_64-python-attrs
mingw-w64-x86_64-python-cairo mingw-w64-x86_64-python-colorama mingw-w64-x86_64-python-contextlib2 mingw-w64-x86_64-python-cycler
mingw-w64-x86_64-python-defusedxml mingw-w64-x86_64-python-imagesize mingw-w64-x86_64-python-importlib-metadata mingw-w64-x86_64-python-iniconfig
mingw-w64-x86_64-python-jdcal mingw-w64-x86_64-python-kiwisolver mingw-w64-x86_64-python-lxml mingw-w64-x86_64-python-more-itertools
mingw-w64-x86_64-python-numpy mingw-w64-x86_64-python-olefile mingw-w64-x86_64-python-ordered-set mingw-w64-x86_64-python-packaging
mingw-w64-x86_64-python-pathlib2 mingw-w64-x86_64-python-pillow mingw-w64-x86_64-python-pluggy mingw-w64-x86_64-python-py
mingw-w64-x86_64-python-pyparsing mingw-w64-x86_64-python-pytest mingw-w64-x86_64-python-pytz mingw-w64-x86_64-python-scandir
mingw-w64-x86_64-python-seaborn mingw-w64-x86_64-python-setuptools mingw-w64-x86_64-python-sip mingw-w64-x86_64-python-six
mingw-w64-x86_64-python-wcwidth mingw-w64-x86_64-python-zipp mingw-w64-x86_64-vapoursynth
Optional For : mingw-w64-x86_64-vtk
Conflicts With : mingw-w64-x86_64-python3 mingw-w64-x86_64-python2<2.7.16-7
Replaces : mingw-w64-x86_64-python3
Installed Size : 112.87 MiB
Packager : Alexey Pavlov <alexpux@gmail.com>
Build Date : Thu, Apr 9, 2020 10:17:39 AM
Install Date : Wed, Apr 22, 2020 10:04:36 AM
Install Reason : Explicitly installed
Install Script : No
Validated By : Signature
$ pacman -Qi python
Name : python
Version : 3.8.2-1
Description : Next generation of the python high-level scripting language
Architecture : i686
URL : https://www.python.org/
Licenses : custom
Groups : None
Provides : python3
Depends On : libbz2 libexpat libffi liblzma ncurses libopenssl libreadline mpdecimal libsqlite zlib
Optional Deps : None
Required By : gdb python3-appdirs python3-attrs python3-pip python3-pyparsing python3-six scons
Optional For : None
Conflicts With : None
Replaces : python3
Installed Size : 47.27 MiB
Packager : Alexey Pavlov <alexpux@gmail.com>
Build Date : Thu, Apr 16, 2020 12:31:48 PM
Install Date : Wed, Apr 22, 2020 10:15:54 AM
Install Reason : Explicitly installed
Install Script : No
Validated By : Signature
提供 python2 的包
$ pacman -Sl | grep "python2 " | grep "installed"
mingw64 mingw-w64-x86_64-python2 2.7.18-1 [installed: 2.7.17-2]
msys python2 2.7.18-1 [installed: 2.7.17-1]
【问题讨论】:
-
您应该选择使用其中之一。哪个更好,我不能说,这可能无关紧要,或者它是操作系统特定的选择(我没有使用 msys 的经验)。然后你应该确保
PYTHONPATH没有指向其他安装。实际上你可以把PYTHONPATH留空,除非你需要包含一些特殊的搜索路径。对于查找内置模块,它不是必需的。关于(2)应该安全地移除一个而不影响另一个。所以我建议的第一步是选择两个安装中的一个并删除另一个,然后检查PYTHONPATH。 -
@a_guest - 你为什么说我应该选择使用其中之一?我知道这更容易,但我不知道为什么这不起作用。如果您有特定原因导致此方法不可行,请告诉我。
-
我没有具体原因,但我也碰巧对 MSYS 的经验为零,所以我不知道安装每个软件包意味着什么(即它背后的实际变化场景)。也许它会根据需要调整
PYTHONPATH,复制一些文件,修改PATH等。这只是反复试验,看看是否是软件包相互干扰。因此,只要您没有遇到任何错误,确保两者都保留没有问题。 -
@a_guest - 我知道,安装不会修改
PATH或PYTHONPATH。我可以获得提供的文件的相应列表。而且我遇到了错误... -
这就是我建议删除其中一个包的原因。然后检查问题是否仍然存在。如果没有,很好。如果您想重新安装软件包,至少您知道要关注什么(即安装执行的任何内容都会干扰其他 Python)。如果没有那一点点的实验,我看不出有很大的机会接近解决方案。
标签: python python-3.8 mingw-w64 msys2 pacman-package-manager