Setup.py安装需要本地软件包

时间:2019-11-19 17:45:09

标签: python setuptools

我希望使用my-package安装软件包setuptoolsmy-package具有本地依赖性utils。我的文件结构如下:

parent/
    my-package/
        my-package/
        setup.py
    utils/
        utils/
        setup.py

我正在使用以下方法安装本地依赖项:

from setuptools import setup
import os

setup(
    name='my-package',
    version='1.0',
    packages=['my-package'],
    install_requires=[
        # location to your my-package project directory
        "file:\\" + os.path.join(os.path.dirname(os.getcwd()), 'utils#egg=utils-1.0')
    ]
)

不幸的是,出现以下错误:

    ERROR: Command errored out with exit status 1:
     command: /path/to/python/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/home/my-package/setup.py'"'"'; __file__='"'"'/home/my-package/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info
         cwd: /home/my-package/
    Complete output (1 lines):
    error in my-package setup command: 'install_requires' must be a string or list of strings containing valid project/version requirement specifiers; Invalid requirement, parse error at "'://home/'"
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

我没有运气就尝试过解决方法here。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

类似的事情可能起作用:

.
├── One
│   ├── one
│   │   └── __init__.py
│   └── setup.py
└── Two
    ├── setup.py
    └── two
        └── __init__.py

One/setup.py

#!/usr/bin/env python3

import setuptools
import pathlib

TWO_PATH = pathlib.Path(__file__).resolve().parent.parent.joinpath('Two')

setuptools.setup(
    name='One',
    version='1.2.3',
    packages=['one'],
    install_requires=['Two'],
    dependency_links=[
        'file://{}#egg=Two-1.2.3'.format(TWO_PATH),
    ],
)