Ошибка установки pip, связанная с функцией в setup.py - PullRequest
0 голосов
/ 06 февраля 2019

Я попробовал pip install /Users/me/git/sdk-python/ моего пакета sdk-python в тестовом проекте, который у меня есть, но он выдает эту ошибку:

(venv) Pauls-MBP-2:ibm-cos-sdk-python-config-test paulcarron$ python -m pip install /Users/paulcarron/git/ibm-cos-sdk-python-config/
Processing /Users/paulcarron/git/ibm-cos-sdk-python-config
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/k1/h29nn0z959q0dr6b44kxx_8h0000gn/T/pip-req-build-cmc5fb_p/setup.py", line 24, in <module>
        version=get_version(),
      File "/private/var/folders/k1/h29nn0z959q0dr6b44kxx_8h0000gn/T/pip-req-build-cmc5fb_p/setup.py", line 19, in get_version
        return VERSION_RE.search(init).group(1)
    AttributeError: 'NoneType' object has no attribute 'group'

Это мой setup.py:

#!/usr/bin/env python
import os
import re
import sys

from setuptools import setup, find_packages
# sdk python version check
_valid  =  sys.version_info[:2] == (2, 7) or sys.version_info >= (3,4)
if not _valid:
    sys.exit("Sorry, SDK only supports versions 2.7, 3.4, 3.5, 3.6, 3.7 of python.")


ROOT = os.path.dirname(__file__)
VERSION_RE = re.compile(r'''__version__ = ['"]([a-z0-9.]+)['"]''')


def get_version():
    init = open(os.path.join(ROOT, 'python_sdk', '__init__.py')).read()
    return VERSION_RE.search(init).group(1)


setup(
    name='sdk-python',
    version=get_version(),
    description='SDK for Python',
    long_description=open('README.md').read(),
    author='me',
    url='https://github.company.com/org/sdk-python',
    scripts=[],
    packages=find_packages(exclude=['tests*']),
    include_package_data=True,
    license="Apache License 2.0",
    classifiers=[
        'Development Status :: 5 - Production/Stable',
        'Intended Audience :: Developers',
        'Natural Language :: English',
        'License :: OSI Approved :: Apache Software License',
        'Programming Language :: Python',
        'Programming Language :: Python :: 2.7',
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.4',
        'Programming Language :: Python :: 3.5',
        'Programming Language :: Python :: 3.6',
        'Programming Language :: Python :: 3.7',
    ],
)

Это раньше работало, но что-то явно изменилось.Я просто не уверен, что и на основании ошибки, я не знаю, с чего начать, кроме того, что это может быть связано с get_version в моем setup.py.Я также не уверен, откуда взялась ссылка на яйцо.

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Я пытался установить преобразования библиотеки Python и столкнулся с той же проблемой.

Оказалось, что питон был сохранен или извлечен в формате DOS (на моем RPi), и это прервало поиск регулярного выражения вsetup.py, который извлекал такие вещи, как README и LICENSE.

Решением было загрузить архив библиотеки, извлечь его, преобразовать файл python, сканируемый setuptools, в формат unix, создать новый архив и запустить установку sudo pip с новым архивом.

Вот мои шаги для конкретных преобразований библиотеки:

wget https://files.pythonhosted.org/packages/e9/57/02bfe4c63659c03980639cdb0e45a0a423910ebc1f441b53ea573de83650/transformations-2019.1.1.tar.gz
sudo pip install transformations-2019.1.1.tar.gz  
cd transformations-2019.1.1/
sudo apt install dos2unix 
dos2unix transformations/*
cd ..
tar cf trans.tar transformations-2019.1.1/
pip install trans.tar 
0 голосов
/ 06 февраля 2019

Я обновил __version__, чтобы он содержал символ _, но get_version содержит [a-z0-9.], который запрещает использование символа _, поэтому я изменил его на [a-z0-9._], и теперь я могу установить пакет.

...