使用 PIP 安装 pyside - 找不到 nmake

installing pyside using PIP - nmake not found

我想使用 PIP 包管理器安装 PySide。但是它收到此错误消息,说它没有找到 nmake。这并不奇怪,因为我没有安装 MSVC,也不打算安装。

Installing collected packages: pyside
  Running setup.py install for pyside
    Removing c:\users\cnyffele\appdata\local\temp\pip_build_cnyffele\pyside\pyside_package
    Python architecture is 32bit
    nmake not found. Trying to initialize the MSVC env...
    Searching MSVC compiler version 9.0
    error: Failed to find the MSVC compiler version 9.0 on your system.

但是 setup.py 程序可以简单地 运行 制作:

C:\Users\cnyffele>where make
C:\MinGW32-xy\bin\make.exe

C:\Users\cnyffele>where mingw32-make
C:\MinGW32-xy\bin\mingw32-make.exe

但出于某种原因,它坚持认为,如果平台是 "win32",它应该使用 msvc,而不用尝试其他任何东西。但是,它确实接受命令行选项:我可以将 "make-spec" 指定为 "mingw"(见下文)。

来自 https://github.com/PySide/pyside-setup/blob/master/setup.py

OPTION_MAKESPEC = option_value("make-spec")

...

if sys.platform == "win32":
    if OPTION_MAKESPEC is None:
        OPTION_MAKESPEC = "msvc"
    if not OPTION_MAKESPEC in ["msvc", "mingw"]:
        print("Invalid option --make-spec. Available values are %s" % (["msvc", "mingw"]))
        sys.exit(1)

如何使 setyp.py 在使用 PIP 安装时使用正确的 make?有没有办法让 PIP 在它 运行 时向 setup.py 提供命令行选项?如果这不可能,我如何在 PIP 下载后手动 运行 setup.py?

PIP 允许通过选项“--global-option”和“--install-option”将选项传递给设置,如 pip reference guide 中所述。

解决方法是:

pip install --global-option="--make-spec=mingw" PySide

一些附加信息:

  • 在使用 pip 安装 PySide 之前,您必须安装 cmake and Qt 4.8
  • 构建错误阻止我直接通过 pip 下载和安装 PySide。我需要从 pypi.python.org.
  • 下载 wheel 二进制包

使用预先下载的 .whl 包,假设该包位于当前工作目录中:

pip install --global-option="--make-spec=mingw" PySide-1.2.4-cp27-none-win32.whl