如何强制 cygwin 运行 Windows python 可执行文件而不是其自己的 bin 目录中的可执行文件

如何强制 cygwin 运行 Windows python 可执行文件而不是其自己的 bin 目录中的可执行文件

当我在 cygwin 中执行关键字 python 时,它会运行其自身内部目录中存在的 python。我无法删除此 python,因为它是下载到 cygwin 中的其他一些软件包所必需的,因此会自动安装。

请看这个:eeng〜

$ where python
C:\cygwin64\bin\python
C:\Users\eeng1\AppData\Local\Programs\Python\Python39\python.exe
C:\Users\eeng1\AppData\Local\Microsoft\WindowsApps\python.exe

eeng ~
$ which python
/usr/bin/python

我希望 cygwin 使用第二个目录来执行 Python 可执行文件,而不是第一个目录。我现在该怎么做?请注意,在 Windows $PATH 中找不到 /usr/bin/python。因此无法通过这种方式修复此问题。

答案1

我在 .bashrc 中添加了这一行:

PATH=/cygdrive/c/Users/myusername/AppData/Local/Programs/Python/Python39/:$PATH

现在运行which python不会提供存储在 cygwin 里面的 python/usr/bin/但是会提供 windows 路径中的一个。

问题解决了。

答案2

要么为您的 cygwin 提供绝对 PATH(您可以编写一个只调用 Windows python 的覆盖脚本,这样您就不必每次都输入完整路径),要么更改您的 PATH 变量,使您的 Windows Python 目录早于 /usr/bin。

例如,如果你创建一个名为winpython以下内​​容的shell 脚本

#!/usr/bin/bash
C:/Users/eeng1/AppData/Local/Programs/Python/Python39 "$@"

您可以使用winpythonpython获取 Windows 版本。

相关内容