当我在 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 "$@"
您可以使用winpython
来python
获取 Windows 版本。