2011-07-07 13 views
4

因此,我一直在研究python項目,並且達到了必須創建某種安裝程序/發行版的程度。現在這個項目有相當多的依賴和一些資源。到目前爲止,我正努力創建一個setup.py,但像scipy,matplotlib甚至numpy這樣的東西在使用easy_install時遇到了一些問題。現在這應該是一個跨平臺的安裝程序/分發/ EXE,但一開始與Mac OS/Linux也可以。現在我已經搜索了一遍,Enstaller或Distribute看起來像是setuptools的替代品,py2exe/pyinstaller似乎也很有用。現在我真的不想開始與每一個人鬥爭,也許沒有任何地方,所以我的問題是你怎麼建議這種考慮,依賴和資源的數量相當高?用於構建具有依賴關係/資源的python發行版的最佳工具

問候, 波格丹

回答

3

我不知道這是否是你所需要的,但對於基於Python的包裝

您可以使用pastescript生成你的setup.py(或者make項目骨架/模板)setup.py的

簡單

from setuptools import setup, find_packages 

setup(
    name = "google killer", 
    version = "0.1.0", 
    url = 'http://example.com/', 
    license = 'AGPL', 
    description = 'best software ever', 
    author = 'me', 
    packages = find_packages('src'), 
    package_dir = {'': 'src'}, 
    install_requires = ['numpy', 'scipy', 'sqlalchemy'], 
) 

複雜。通過pastescript在金字塔項目取得

import os 

from setuptools import setup, find_packages 

here = os.path.abspath(os.path.dirname(__file__)) 
README = open(os.path.join(here, 'README.txt')).read() 
CHANGES = open(os.path.join(here, 'CHANGES.txt')).read() 

requires = ['pyramid', 'WebError'] 

setup(name='test', 
     version='0.0', 
     description='test', 
     long_description=README + '\n\n' + CHANGES, 
     classifiers=[ 
     "Programming Language :: Python", 
     "Framework :: Pylons", 
     "Topic :: Internet :: WWW/HTTP", 
     "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", 
     ], 
     author='', 
     author_email='', 
     url='', 
     keywords='web pyramid pylons', 
     packages=find_packages(), 
     include_package_data=True, 
     zip_safe=False, 
     install_requires=requires, 
     tests_require=requires, 
     test_suite="test", 
     entry_points = """\                 
     [paste.app_factory]                 
     main = test:main                  
     """, 
     paster_plugins=['pyramid'], 
    ) 

你可以在大多數Python項目

而且找到他們,進行詳細的敘述說明讀The Hitchhiker’s Guide to Packaging(快速啓動是有幫助的)

+0

那麼我的一些相關性不據我所知,使用disutils進行分發,然後通過下載它們的包和setup.py install進行安裝。我需要讓一個安裝程序知道如何安裝所有可以用install_requires = [「psycopg2」,「cherrypy」,「sqlalchemy」,「quantity」,「scipy」]來安裝的依賴項以及那些可以這個很容易安裝。你有什麼建議可以做到這一點? – Bogdan

+0

pip似乎比setuptools更好地處理大多數依賴項,但是您能否給我一個相當於標準setup.py的例子? – Bogdan

+0

檢查更新回答 – kusut

相關問題