setup.py 安装本地包

2024-01-10

如果我有一棵树,看起来像:

├── project
│   ├── package
│   │   ├── __init__.py
│   │   ├── setup.py
├── env
└── setup.py

有没有办法将嵌套的 setup.py 包含在顶部 setup.py 的安装中?我想避免这种情况:

pip install -e . ; cd project/package ; pip install -e .

解决方案是拥有两个独立的项目:主项目(通常是应用程序)和子项目(通常是库)。主应用程序依赖于该库。

树结构和setup.py

主项目可以具有以下结构:

your_app/
|-- setup.py
ˋ-- src/
    ˋ-- your_app/
        |-- __init__.py
        |-- module1.py
        ˋ-- ...

The setup.py您的申请可以是:

from setuptools import find_packages
from setuptools import setup

setup(
    name='Your-App',
    version='0.1.0',
    install_requires=['Your-Library'],
    packages=find_packages('src'),
    package_dir={'': 'src'},
    url='https://github.com/your-name/your_app',
    license='MIT',
    author='Your NAME',
    author_email='[email protected] /cdn-cgi/l/email-protection',
    description='Your main project'
)

你可以注意到:

  • 您的应用程序的名称可能与您的包的名称略有不同;
  • 该包依赖于“Your-Library”,定义如下;
  • 您可以将您的来源放入src目录,但它是可选的。很多项目都没有。

子项目可以具有以下结构:

your_library/
|-- setup.py
ˋ-- src/
    ˋ-- your_library/
        |-- __init__.py
        |-- lib1.py
        ˋ-- ...

The setup您的图书馆可以是:

from setuptools import find_packages
from setuptools import setup

setup(
    name='Your-Library',
    version='0.1.0',
    packages=find_packages('src'),
    package_dir={'': 'src'},
    url='https://github.com/your-name/your_library',
    license='MIT',
    author='Your NAME',
    author_email='[email protected] /cdn-cgi/l/email-protection',
    description='Your sub-project'
)

把所有的东西放在一起

为您的应用程序创建一个 virtualenv 并激活它

进入your_library/目录并运行:

pip install -e .

然后,进去your_app/目录并运行:

pip install -e .

您现在可以开始编码了。玩得开心!

See the Python 搭便车指南 https://docs.python-guide.org/writing/structure/#structuring-your-project:“构建您的项目”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

setup.py 安装本地包 的相关文章

随机推荐