如何让cygwin中的python使用安装在windows中的包?

How to let the python in cygwin use the package installed in windows?

我在 cygwin 和 windows 上都安装了 python。但是,cygwin 的站点包中没有安装任何包。这里的目录是/usr/lib/python2.7/site-packages。相比之下,它们都安装在C:\Python\Lib\site-packages中。由于我在 C:\Python\Lib\site-packages 中安装了软件包,因此 cygwin 中的 pip 将跳过这些软件包的安装。有没有直接使用windows中的包的方法?

首先,确保(在 cygwin bash 中)python2 and/or python3 is/are 在 windows 版本之前您路径中的程序。在撰写本文时,python 2 如果已安装,可以称为 pythonpython2,而 python 3 称为 python3。随着更多 Linux 发行版切换到使用 python 3 作为默认值,这可能会改变。使用 python -Vpython3 -V 验证您在 运行 宁 bash 时获得 python 的 cygwin 版本。 (我不再安装python 2.)

$ which python
which: no python in (**"your path"**)
$ which python3
/usr/bin/python3
$ python3 -V
Python 3.6.4

然后验证您可以 运行 适合您的 python 的 pip 版本。要绝对确定您使用的是哪个版本,运行

$ python3 -m pip --version
pip 9.0.1 from /usr/lib/python3.6/site-packages (python 3.6)

现在您应该可以通过将 pippip3 替换为 python -m pippython3 -m pip.[=28= 来安装来自 PiPI 的大多数软件包]

如果您尝试安装需要编译的包,即在 windows 上作为二进制包分发的包,您将需要 gcc 编译器工具链,并且可能python-develpython3-devel 包。顺便说一句,始终使用 cygwin.com 中的最新 cygwin 安装程序。在安装软件包之前,您可能还需要使用安装程序安装任何必需的 cygwin 软件包。

HTH

道格