相关疑难解决方法(0)

在setup.py中执行python版本

目前,我们正在设置\在系统上安装一些软件包,方法是在install_requires属性下的setup.py中提及它们的版本和依赖项.我们的系统需要python 2.7.有时,用户有多个版本的python说2.6.x和2.7,它说的一些软件包已经可用但实际上在2.6网站软件包列表下可用的系统上.还有一些用户只有2.6,如何从setup.py强制执行,或者还有其他任何方式可以说只有python 2.7和我们想要setup.py更新的所有包只有2.7.我们在机器上要求至少2.7来运行我们的代码.

谢谢!Santhosh

python setuptools python-2.7

31
推荐指数
2
解决办法
2万
查看次数

防止在旧的Python版本上安装软件包

setup.py在使用不受支持的Python版本时,我们可以在文件中放置什么来阻止pip收集并尝试安装包?

例如,magicstack是使用特洛伊分类器列出的项目:

Programming Language :: Python :: 3 :: Only
Run Code Online (Sandbox Code Playgroud)

所以我希望以下行为如果pip --version与python 2.7绑定:

$ pip install magicstack
Collecting magicstack
  Could not find a version that satisfies the requirement magicstack (from versions: )
No matching distribution found for magicstack
Run Code Online (Sandbox Code Playgroud)

但实际行为是pip收集一个版本,下载它,尝试安装它并失败.curio例如,还有其他仅支持Python3的版本,实际上安装得很好 - 因为它setup.py没有使用任何特定的Python 3 - 只在导入时失败,只使用了一些Python 3语法.而且我确定有些软件包安装正常,导入正常,可能只在运行时失败!

以pip尊重的方式指定支持的Python版本的正确方法是什么? 我找到了一个解决方法,只涉及上传一个轮文件,并拒绝上传.tar.gz发行版,但我很想知道正确的修复.


编辑:如果Python/os/architecture不匹配 ,pip如何知道下载wheel分布?它只是使用.whl文件名约定还是比幕后更复杂?我们能不能以某种方式将元数据提供给源代码分发,以使pip使用.tar.gz上传做正确的事情?

python pip setuptools pypi python-packaging

15
推荐指数
1
解决办法
1702
查看次数

如何使用setuptools指定python版本?

有没有办法指定一个python版本与setup.py中定义的python包一起使用?

我的setup.py目前看起来像这样:

from distutils.core import setup
setup(
  name = 'macroetym',
  packages = ['macroetym'], # this must be the same as the name above
  version = '0.1',
  description = 'A tool for macro-etymological textual analysis.',
  author = 'Jonathan Reeve',
  author_email = 'jon.reeve@gmail.com',
  url = 'https://github.com/JonathanReeve/macro-etym', 

  download_url = 'https://github.com/JonathanReeve/macro-etym/tarball/0.1', # FIXME: make a git tag and confirm that this link works
  install_requires = ['Click', 'nltk', 'pycountry', 'pandas',
                      'matplotlib'],
  include_package_data = True,
  package_data = {'macroetym': ['etymwm-smaller.tsv']}, 
  keywords = ['nlp', 'text-analysis', 'etymology'], 
  classifiers = …
Run Code Online (Sandbox Code Playgroud)

python setuptools

7
推荐指数
1
解决办法
4537
查看次数

Distribute/distutils指定Python版本

有点跟进这个 ...... :)

我的项目只是Python 3,我的问题基本上是如何告诉distutils/distribute/who who this package是否仅限Python 3?

python distribution setuptools distribute

6
推荐指数
1
解决办法
1009
查看次数