簡體   English   中英

可以有python子包的setup.py文件嗎?

[英]Can there be setup.py files for python subpackages?

我看到scipy在其子包中有setup.py文件。 這些setup.py文件有什么作用? 它是用於構建子包嗎?

是否有任何文檔或網頁可以解釋這個或者像教程一樣?

一般來說,您不需要任何其他設置腳本來構建分發。 SciPy需要額外的設置腳本,主要是為了減少特定於子包的樣板配置代碼的數量。 SciPy子包中的設置腳本主要用於構建整個分發時的配置准備 - 構建和打包仍然是從根設置腳本完成的。 NumPy Distutils - 用戶指南中所述

SciPy包的要求

SciPy由Python包組成,稱為SciPy包,Python用戶可以通過scipy命名空間使用它們。 每個SciPy包都可能包含其他SciPy包。 等等。 因此,SciPy目錄樹是具有任意深度和寬度的包樹。 任何SciPy包都可能依賴於NumPy包,但對其他SciPy包的依賴應保持最小或為零。

除了源代碼之外,SciPy包還包含以下文件和目錄:

  • setup.py ---構建腳本
  • __init__.py ---包初始化程序
  • tests/ --- unittests目錄

它們的內容如下所述。

setup.py文件

為了向SciPy添加Python包,其構建腳本( setup.py )必須滿足某些要求。 最重要的要求是包定義了一個configuration(parent_package='',top_path=None)函數,它返回一個適合傳遞給numpy.distutils.core.setup(..)的字典。 為簡化此字典的構造, numpy.distutils.misc_util提供了Configuration類,如下所述。

SciPy純Python包示例

下面是純SciPy包的最小setup.py文件的示例

  #!/usr/bin/env python def configuration(parent_package='',top_path=None): from numpy.distutils.misc_util import Configuration config = Configuration('mypackage',parent_package,top_path) return config if __name__ == "__main__": from numpy.distutils.core import setup #setup(**configuration(top_path='').todict()) setup(configuration=configuration) 

暫無
暫無

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

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