我想使用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程序可以简单地运行make:
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)
如何在使用PIP安装时使setyp.py使用正确的make?有没有办法让PIP在运行时为setup.py提供命令行选项?如果无法做到这一点,如何在PIP下载后手动运行setup.py?
答案 0 :(得分:3)
PIP允许通过选项'--global-option'和'--install-option'传递选项,如pip reference guide中所述。
解决方案是:
pip install --global-option="--make-spec=mingw" PySide
其他一些信息:
使用预先下载的.whl包,假设包位于当前工作目录中:
pip install --global-option="--make-spec=mingw" PySide-1.2.4-cp27-none-win32.whl