【问题标题】:Msys2: Maintaining two python installationsMsys2:维护两个python安装
【发布时间】:2023-03-16 06:24:01
【问题描述】:

我在 Win 10 下使用 Msys2 便携版。 我有 2 个 python 3.8 安装。原来的问题是这样问的。我现在确定是这样,所以我暂时想处理他们的维护。

我还发布了另一个相关问题Msys2: readline in two python installations

我在下面发布两者的信息。

我的问题是:

  1. 它们会相互干扰吗? 如果是这样,我应该处理哪些步骤/配置? (PYTHONPATHsite-packages等)

  2. 在不破坏另一个的情况下移除其中任何一个是否安全? 在我看来,下面的依赖关系没有风险,但我不确定这是否足以回答这个问题。

  3. 最好保留哪一个? 我的意思是通过 Eclipse CDT 使用 numpypandas、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 - 我知道,安装不会修改PATHPYTHONPATH。我可以获得提供的文件的相应列表。而且我遇到了错误...
  • 这就是我建议删除其中一个包的原因。然后检查问题是否仍然存在。如果没有,很好。如果您想重新安装软件包,至少您知道要关注什么(即安装执行的任何内容都会干扰其他 Python)。如果没有那一点点的实验,我看不出有很大的机会接近解决方案。

标签: python python-3.8 mingw-w64 msys2 pacman-package-manager


【解决方案1】:

我在 MSYS2 shell(版本 2 + 3)中使用了 2 个不同的 Python 版本。

我要做的是:

  • PATH 环境变量中不包含 Python 路径,因此如果需要 Python,它会失败。
  • 当需要 Python 时,我将 PATH=&lt;python_path&gt;:$PATH 添加到需要它的命令前(例如 PATH=/D/Prog/Python/WinPython-64bit-2.7.13.1Zero/python-2.7.13.amd64:$PATH make),或者如果该命令支持在环境中设置 PYTHON,我在命令前添加 PYTHON=&lt;python_path&gt;/python.exe。在Makefileconfigure 接受PYTHON 变量的某些情况下,也可以在命令后附加PYTHON=&lt;python_path&gt;/python.exe
  • 如果 Python 想要加载某些模块,可能还需要设置 PYTHONPATH 变量(例如 PYTHONPATH=&lt;python_path&gt;/Lib/site-packages

这对我来说很有效,并且总是迫使我选择我使用的 Python。

【讨论】:

    猜你喜欢
    • 2021-07-19
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多