强制 setuptools 使用 dependency_links 安装 mysqlclient [英] Force setuptools to use dependency_links to install mysqlclient

查看:54
本文介绍了强制 setuptools 使用 dependency_links 安装 mysqlclient的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是 Windows,我需要从此处安装 WHL 文件.这是我在 setup.py 中的内容:

I'm using Windows, and I need to install the WHL file from here. Here's what I have in setup.py:

install_requires=['mysqlclient==1.3.7',
...
dependency_links=['https://pypi.python.org/packages/cp27/m/mysqlclient/mysqlclient-1.3.7-cp27-none-win32.whl#md5=e9e726fd6f1912af78e2bf6ab56c02f3',]

但是,setuptools 正在下载 tar.gz 文件并尝试构建,这在我的系统上不起作用.我按照这个解决方案并将我的install_requires更改为使用mysqlclient<=1.3.7,但我仍然遇到同样的问题.这是输出:

However, setuptools is downloading the tar.gz file instead and attempting to build, which won't work on my system. I followed this solution and changed my install_requires to use mysqlclient<=1.3.7, but I still get the same problem. Here is the output:

Searching for mysqlclient<=1.3.7
Reading https://pypi.python.org/packages/cp27/P/Pillow/Pillow-2.7.0-cp27-none-win32.whl#md5=ebc4ef88a8dd39ed484206323a8d557a
Reading https://pypi.python.org/packages/cp27/m/mysqlclient/mysqlclient-1.3.7-cp27-none-win32.whl#md5=e9e726fd6f1912af78e2bf6ab56c02f3
Reading http://pypi.python.org/simple/mysqlclient/
Best match: mysqlclient 1.3.7
Downloading https://pypi.python.org/packages/source/m/mysqlclient/mysqlclient-1.3.7.tar.gz#md5=2ec5a96cbd9fd6ef343fa9b581a67fc4
Processing mysqlclient-1.3.7.tar.gz
Running mysqlclient-1.3.7\setup.py -q bdist_egg --dist-dir c:\users\uuu\appdata\local\temp\easy_install-wt7fkw\mysqlclient-1.3.7\egg-dist-tmp-ubrs4f
error: Setup script exited with error: Unable to find vcvarsall.bat

使用dependency_links 中的链接安装Pillow 没有任何问题.有没有办法强制 setup.py 使用依赖链接?

I don't have any issues with install Pillow using the link in the dependency_links. Is there a way to force setup.py to use the dependency link?

推荐答案

作为安装后的一部分,我最终手动安装了软件包:

I ended up manually installing the package as a part of the post install:

from setuptools.command.install import install as _install
import pip

class install(_install):
  def run(self):
    _install.do_egg_install(self)

    # Even when dependeny link to mysqlclient is specified, setuptools still installs
    # from pypi, which does not work on Windows.  Therefore, manually install mysqlclient
    if os.name == 'nt':
      pip.main(['install', 'https://pypi.python.org/packages/cp27/m/mysqlclient/mysqlclient-1.3.7-cp27-none-win32.whl#md5=e9e726fd6f1912af78e2bf6ab56c02f3'])
    else:
      pip.main(['install', 'mysqlclient==1.3.7'])

setup(
      cmdclass={'install': install},
...
)

其他答案调用_install.run(),但这对我不起作用.我不得不使用 do_egg_install().

There are other answers that call _install.run(), but that didn't work for me. I had to use do_egg_install().

这篇关于强制 setuptools 使用 dependency_links 安装 mysqlclient的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆