簡體   English   中英

setup.py安裝本地軟件包

[英]setup.py installing local packages

如果我有一棵像這樣的樹:

├── 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
        ˋ-- ...

您的應用程序的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='your@email.com',
    description='Your main project'
)

您會注意到:

  • 您的應用程序名稱可能與程序包名稱稍有不同。
  • 該軟件包依賴於下面定義的“您的庫”;
  • 您可以將源放在src目錄中,但這是可選的。 很多項目都沒有。

子項目可以具有以下結構:

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

庫的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='your@email.com',
    description='Your sub-project'
)

將所有東西放在一起

為您的應用程序創建一個virtualenv並激活它

進入your_library/目錄並運行:

pip install -e .

然后,進入your_app/目錄並運行:

pip install -e .

您現在可以編寫代碼了。 玩得開心!

請參閱《 Python漫游者指南 》:“構建項目”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM