在Windows上使用VirtualEnv,pip无法安装带有C扩展的软件包

4

我试图进行一些现代化,但不知何故,pip在安装具有C扩展的任何内容时都会失败。其中最棘手的是MySQLdb、PIL和Fabric。我可以使用exe安装它们,但现代的要求技术无法起作用。

例如,这里是PIL的情况(virtualtesting是环境,并且还没有其他内容):

(virtualtesting) C:\Users\jgoldstein\Localhost\virtualtesting>pip install pil
Downloading/unpacking pil
  Downloading PIL-1.1.7.tar.gz (506Kb): 506Kb downloaded
  Running setup.py egg_info for package pil
    WARNING: '' not a valid package name; please use only.-separated package names in setup.py

Installing collected packages: pil
  Running setup.py install for pil
    WARNING: '' not a valid package name; please use only.-separated package names in setup.py
    building '_imaging' extension
    error: Unable to find vcvarsall.bat
    Complete output from command C:\Users\jgoldstein\Localhost\virtualtesting\Scripts\python.exe -c "import setuptools;__file__='C:\\Users\\jgoldstein\\Localhost\\virtualtesting\\build\\pil\\setup.py';exec(compile(open(__file__).read().replace('\r\n',
'\n'), __file__, 'exec'))" install --single-version-externally-managed --record c:\users\jgolds~1\appdata\local\temp\pip-wbez3q-record\install-record.txt --install-headers C:\Users\jgoldstein\Localhost\virtualtesting\include\site\python2.7:
    WARNING: '' not a valid package name; please use only.-separated package names in setup.py

running install

running build

running build_py

creating build

creating build\lib.win32-2.7

copying PIL\ArgImagePlugin.py -> build\lib.win32-2.7

copying PIL\BdfFontFile.py -> build\lib.win32-2.7

copying PIL\BmpImagePlugin.py -> build\lib.win32-2.7

copying PIL\BufrStubImagePlugin.py -> build\lib.win32-2.7

copying PIL\ContainerIO.py -> build\lib.win32-2.7

copying PIL\CurImagePlugin.py -> build\lib.win32-2.7

copying PIL\DcxImagePlugin.py -> build\lib.win32-2.7

copying PIL\EpsImagePlugin.py -> build\lib.win32-2.7

copying PIL\ExifTags.py -> build\lib.win32-2.7

copying PIL\FitsStubImagePlugin.py -> build\lib.win32-2.7

copying PIL\FliImagePlugin.py -> build\lib.win32-2.7

copying PIL\FontFile.py -> build\lib.win32-2.7

copying PIL\FpxImagePlugin.py -> build\lib.win32-2.7

copying PIL\GbrImagePlugin.py -> build\lib.win32-2.7

copying PIL\GdImageFile.py -> build\lib.win32-2.7

copying PIL\GifImagePlugin.py -> build\lib.win32-2.7

copying PIL\GimpGradientFile.py -> build\lib.win32-2.7

copying PIL\GimpPaletteFile.py -> build\lib.win32-2.7

copying PIL\GribStubImagePlugin.py -> build\lib.win32-2.7

copying PIL\Hdf5StubImagePlugin.py -> build\lib.win32-2.7

copying PIL\IcnsImagePlugin.py -> build\lib.win32-2.7

copying PIL\IcoImagePlugin.py -> build\lib.win32-2.7

copying PIL\Image.py -> build\lib.win32-2.7

copying PIL\ImageChops.py -> build\lib.win32-2.7

copying PIL\ImageCms.py -> build\lib.win32-2.7

copying PIL\ImageColor.py -> build\lib.win32-2.7

copying PIL\ImageDraw.py -> build\lib.win32-2.7

copying PIL\ImageDraw2.py -> build\lib.win32-2.7

copying PIL\ImageEnhance.py -> build\lib.win32-2.7

copying PIL\ImageFile.py -> build\lib.win32-2.7

copying PIL\ImageFileIO.py -> build\lib.win32-2.7

copying PIL\ImageFilter.py -> build\lib.win32-2.7

copying PIL\ImageFont.py -> build\lib.win32-2.7

copying PIL\ImageGL.py -> build\lib.win32-2.7

copying PIL\ImageGrab.py -> build\lib.win32-2.7

copying PIL\ImageMath.py -> build\lib.win32-2.7

copying PIL\ImageMode.py -> build\lib.win32-2.7

copying PIL\ImageOps.py -> build\lib.win32-2.7

copying PIL\ImagePalette.py -> build\lib.win32-2.7

copying PIL\ImagePath.py -> build\lib.win32-2.7

copying PIL\ImageQt.py -> build\lib.win32-2.7

copying PIL\ImageSequence.py -> build\lib.win32-2.7

copying PIL\ImageShow.py -> build\lib.win32-2.7

copying PIL\ImageStat.py -> build\lib.win32-2.7

copying PIL\ImageTk.py -> build\lib.win32-2.7

copying PIL\ImageTransform.py -> build\lib.win32-2.7

copying PIL\ImageWin.py -> build\lib.win32-2.7

copying PIL\ImImagePlugin.py -> build\lib.win32-2.7

copying PIL\ImtImagePlugin.py -> build\lib.win32-2.7

copying PIL\IptcImagePlugin.py -> build\lib.win32-2.7

copying PIL\JpegImagePlugin.py -> build\lib.win32-2.7

copying PIL\McIdasImagePlugin.py -> build\lib.win32-2.7

copying PIL\MicImagePlugin.py -> build\lib.win32-2.7

copying PIL\MpegImagePlugin.py -> build\lib.win32-2.7

copying PIL\MspImagePlugin.py -> build\lib.win32-2.7

copying PIL\OleFileIO.py -> build\lib.win32-2.7

copying PIL\PaletteFile.py -> build\lib.win32-2.7

copying PIL\PalmImagePlugin.py -> build\lib.win32-2.7

copying PIL\PcdImagePlugin.py -> build\lib.win32-2.7

copying PIL\PcfFontFile.py -> build\lib.win32-2.7

copying PIL\PcxImagePlugin.py -> build\lib.win32-2.7

copying PIL\PdfImagePlugin.py -> build\lib.win32-2.7

copying PIL\PixarImagePlugin.py -> build\lib.win32-2.7

copying PIL\PngImagePlugin.py -> build\lib.win32-2.7

copying PIL\PpmImagePlugin.py -> build\lib.win32-2.7

copying PIL\PsdImagePlugin.py -> build\lib.win32-2.7

copying PIL\PSDraw.py -> build\lib.win32-2.7

copying PIL\SgiImagePlugin.py -> build\lib.win32-2.7

copying PIL\SpiderImagePlugin.py -> build\lib.win32-2.7

copying PIL\SunImagePlugin.py -> build\lib.win32-2.7

copying PIL\TarIO.py -> build\lib.win32-2.7

copying PIL\TgaImagePlugin.py -> build\lib.win32-2.7

copying PIL\TiffImagePlugin.py -> build\lib.win32-2.7

copying PIL\TiffTags.py -> build\lib.win32-2.7

copying PIL\WalImageFile.py -> build\lib.win32-2.7

copying PIL\WmfImagePlugin.py -> build\lib.win32-2.7

copying PIL\XbmImagePlugin.py -> build\lib.win32-2.7

copying PIL\XpmImagePlugin.py -> build\lib.win32-2.7

copying PIL\XVThumbImagePlugin.py -> build\lib.win32-2.7

copying PIL\__init__.py -> build\lib.win32-2.7

running build_ext

building '_imaging' extension

error: Unable to find vcvarsall.bat

----------------------------------------
Command C:\Users\jgoldstein\Localhost\virtualtesting\Scripts\python.exe -c "import setuptools;__file__='C:\\Users\\jgoldstein\\Localhost\\virtualtesting\\build\\pil\\setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record c:\users\jgolds~1\appdata\local\temp\pip-wbez3q-record\install-record.txt --install-headers C:\Users\jgoldstein\Localhost\virtualtesting\include\site\python2.7 failed with error code 1
Storing complete log in C:\Users\jgoldstein\AppData\Roaming\pip\pip.log

这是Python 2.7(32位),VirtualEnv 1.7,Windows 7(64位)环境。我遇到了问题。

第一个问题:这个问题是否可以解决?

第二个问题:如果我运行exe安装程序到主site-packages并将结果复制到VirtualEnv的目录中,它看起来可以正常工作。如果我想要使用pip+requirements.txt模式,这样做会有多糟糕的影响?

(显然,在服务器上所有这些都很好地运作。)

3个回答

1

0
我无法回答第二个问题,但我有一个提示可以简化在虚拟环境中安装软件包的过程:
您可以激活您的虚拟环境,然后运行easy_install path_to_exe_installer,这将直接安装该软件包到虚拟环境中。

0
原来这是distutils的一个bug。如果你使用GCC,目前还没有已知的解决方案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接