点子安装与pip的要求

时间:2017-07-31 08:48:57

标签: python-2.7 pip setuptools

我制作了一个包(下面称为“my_package”),需要安装最小版本的pip和setuptools。是否可以在“pip install my_package”期间更新它们(但不是在安装my_package之前执行“pip install -U pip”)?我试图将它们添加到需求中,但我以下面的例外结束:

    def get(self, request, *args, **kwargs):
      d = super(FacetUpdate, self).post(request, *args, **kwargs)
      currenttenant = self.context.tenant
      d['linked_facets'] = currenttenant.linked_facets
      self.object = self.get_object()
      return d

我的setup.py如下:

pkg_resources.VersionConflict: (pip 1.5.6 (~/.virtualenvs/test/lib/python2.7/site-packages), Requirement.parse('pip>=9.0.0'))

由于

解决方案1: 它没有解决我的问题,但它使用户更明确:

from setuptools import setup

package_name = 'my_package'

requires = [
    'pip >= 9.0.0',
    'setuptools >= 36.0.0'
]


setup(name=package_name,
      author="Me",
      use_scm_version=True,
      packages=[package_name],
      zip_safe=False,
      setup_requires=['setuptools_scm'] + requires,
      install_requires=requires)

2 个答案:

答案 0 :(得分:1)

您应升级pip版本:

pip install --upgrade pip

答案 1 :(得分:0)

您可以使用升级命令将setup.py代码启动到pip,然后重新加载并照常继续。 如果仍有问题,请尝试使用下标。

例如(使用ossubprocess模块):

import os
import pip
import importlib
from setuptools import setup

# duplicate this part to another script then reload.
os.system("python -m pip install -U pip")
# Python 3
importlib.reload(pip)
importlib.reload(setuptools)
# Python 2
reload(pip)
reload(setuptools)

package_name = 'my_package'

requires = [
    'pip >= 9.0.0',
    'setuptools >= 36.0.0'
]


setup(name=package_name,
      author="Me",
      use_scm_version=True,
      packages=[package_name],
      zip_safe=False,
      setup_requires=['setuptools_scm'] + requires,
      install_requires=requires)

升级点

在Linux或macOS上:

pip install -U pip

在Windows上:

python -m pip install -U pip