2017-08-18 5 views
1

私はpython.pypi.orgにあるpythonパッケージ(xyz)を持っています。私は新しいバージョンをリリースしようとしていて、アップロードのために撚り糸を使用しています。チュートリアルで説明したように、〜/ .pypircファイルのすべてを修正しました。私は、次のコマンドを実行すると:これが起こっているが、私はそれが私のsetup.pyファイル可能性が推測するが、ここにいるのですなぜ私は確認されませんでしたTwineはpypi.orgにアップロードできません

Uploading distributions to https://upload.pypi.org/legacy/

Uploading xyz-1.9.1.tar.gz

HTTPError: 400 Client Error: provides: Invalid requirement: 'xyz (1.9.1)' for url: https://upload.pypi.org/legacy/

twine upload dist/* 

を私は次の出力を得ました私のsetup()部分のブロック。

setup(
name='xyz', 
version=__version__, 
author='xyz', 
author_email='xyz', 
description='xyz package for xyz', 
long_description=long_description, 
url='xyz', 
packages=PACKAGES, 
package_dir=PACKAGE_DIR, 
package_data=PACKAGE_DATA, 
ext_modules=EXTENSIONS, 
license='MIT License', 
keywords=('xyz'), 
classifiers=[ 
      'Development Status :: 5 - Production/Stable', 
      'Intended Audience :: Education', 
      'Intended Audience :: Science/Research', 
      'License :: OSI Approved :: MIT License', 
      'Operating System :: MacOS', 
      'Operating System :: Microsoft :: Windows', 
      'Operating System :: POSIX', 
      'Programming Language :: Python', 
      'Programming Language :: Python :: 2', 
      'Programming Language :: Python :: 3', 
      'Topic :: Scientific/Engineering :: xyz', 
      'Topic :: Scientific/Engineering :: xyz', 
      ], 
scripts=SCRIPTS, 
requires=['NumPy (>=1.7)', ], 
provides=['xyz'.format(__version__)] 

誰もがこの上で私を助けてもらえますか?ありがとう。

注:「xyz」は、パッケージの置き換え名です。重複パッケージはありません。

答えて

1

(私はそうでない場合、これはどんな意味がありませんのでごsetup.pyprovides=['xyz'.format(__version__)]行は、実際にprovides=['xyz ({})'.format(__version__)]であると仮定しています。)すべての

まず、setup()からprovidesrequires引数が非推奨とされ、私が知っている限り、実際に何にも使用されていませんでした。 requiresの代わりにinstall_requiresと入力してください。そのフィールドに正式な意味を与えようとすると、そのようなフィールドがもたらすかもしれないわずかな利益を上回る問題につながるので、providesの代わりはありません。しかし、providesの使用を主張すると、何らかの理由でPyPIがフィールドの値を有効な要件文字列にする必要があります。"xyz (1.9.1)"はそうではありません。有効な要件は、代わりに「xyz == 1.9.1」または"xyz (== 1.9.1)"のようになりますが、前述のように実際には何も意味しません。

PS:Python Packaging User Guideから、"Packaging and Distributing Projects"を読んで、近代的な推奨Pythonパッケージングの方法をお勧めします。

関連する問題