2017-09-22 52 views
0

創建一個安裝文件。用下面的代碼,其中setup.py是運行sDist構建一個包並安裝創建空構建目錄

import sys 
from distutils.core import setup 

setup(
    name='SomePackage', 
    author='dave', 
    version='0.1.0', 
    author_email='dave', 
    packages=['apples',], 
    license='LICENSE.txt', 
    url="None", 
    include_package_data=True, 
    description='i love apples', 
    long_description=open('README.txt').read(), 
    install_requires=[ 
     "matplotlib >= 2.0.0", 
     "numpy >= 1.11.3", 
     "openpyxl >= 2.4.1", 
     "openturns >= 1.9", 
     "pandas >= 0.19.2", 
     "pip >= 9.0.1", 
     "pyodbc >= 4.0.17", 
     "pyqt >= 5.6.0", 
     "pywin32 >= 220.0.0", 
     "pywinauto >= 0.6.3", 
     "qt >= 5.6.2", 
     "scipy >= 0.18.1", 
     "statistics >= 1.0.3.5", 
     "tqdm >= 4.15.0", 
     "xlwings >= 0.10.2", 
    ],) 
運行蟒蛇setup.py sdist時

,結果將創建一個zip文件(我是在Windows上)一DIST的文件夾。當打開這個文件時,蘋果包和所有的子文件夾都在其中。蘋果的目錄樹如下

note在屏幕截圖中,Files表示它們位於Apples文件夾中。

enter image description here

但是當我通過

  1. 部署到另一臺機器上解壓縮zip文件
  2. 光盤目錄
  3. 蟒蛇的setup.py安裝
  4. 在網站上創建一個build文件夾-packages/apples
  5. 在build文件夾中被複制到site-pac kages文件夾,只不過是兩個文件(初始化的.py和version.py),而忽略了核心與片的子迪爾斯

enter image description here

回答

1

你需要列出所有的包和subpackges:

packages=['apples', 'apples.core', 'apples.slice',], 

from setuptools import find_packages 
… 
packages = find_packages(), 
+0

謝謝!我剛剛添加了你提到的子包。然而setuptools是相當不錯的,在某些情況下,我認爲它是最好的方法。 – dfresh22