pip install 抛出与 setup.py 中函数相关的错误

pip install throwing error relating to a function in setup.py

我尝试将我的 sdk-python 包的 pip install /Users/me/git/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',
    ],
)

这以前有效,但明显发生了一些变化。我只是不确定是什么,基于错误,我不知道从哪里开始,除了它可能与我的 setup.py 中的 get_version 有关。我也不确定鸡蛋参考来自哪里。

我更新了 __version__ 以包含 _ 字符,但 get_version 包含 [a-z0-9.] 以防止 _ 字符被允许,所以我更改了它至 [a-z0-9._],我现在可以安装软件包了。

我试图将 python 库 t运行sformations 和 运行 安装到同一个问题中。

事实证明,python 是以 DOS 格式存储或提取的(在我的 RPi 上),这破坏了 setup.py 中提取 README 和 LICENSE 等内容的正则表达式搜索。

解决方案是下载库存档,解压它,将 setuptools 扫描的 python 文件转换为 unix 格式,制作一个新的存档,然后 运行 sudo pip install with the new存档。

这是我针对特定库 t运行sformations 的步骤:

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