Co konkretnie próbujesz zrobić? Chyba że masz jakieś dziwne wymagania, polecam deklarując pakiet jako zależność w swoim setup.py:
from setuptools import setup, find_packages
setup(
name = "HelloWorld",
version = "0.1",
packages = find_packages(),
scripts = ['say_hello.py'],
# Project uses reStructuredText, so ensure that the docutils get
# installed or upgraded on the target machine
install_requires = ['docutils>=0.3'],
package_data = {
# If any package contains *.txt or *.rst files, include them:
'': ['*.txt', '*.rst'],
# And include any *.msg files found in the 'hello' package, too:
'hello': ['*.msg'],
}
# metadata for upload to PyPI
author = "Me",
author_email = "[email protected]",
description = "This is an Example Package",
license = "PSF",
keywords = "hello world example examples",
url = "http://example.com/HelloWorld/", # project home page, if any
# could also include long_description, download_url, classifiers, etc.
)
Kluczem tutaj jest linia install_requires = ['docutils>=0.3']
. Spowoduje to, że plik setup.py automatycznie zainstaluje tę zależność, chyba że użytkownik określi inaczej. Możesz znaleźć więcej dokumentacji na ten temat here (zwróć uwagę, że strona setuptools działa bardzo wolno!).
Jeśli masz jakieś wymaganie, którego nie można spełnić w ten sposób, prawdopodobnie powinieneś spojrzeć na S.Lott's answer (chociaż nigdy tego nie próbowałem).
Znaleziono w wyszukiwarce Google: easy_install.main ("-U py2app" .split()). Proszę zmienić tekst odpowiedzi, aby go zaakceptować :) – grigoryvp
Mogę potwierdzić, że to działa - robię to cały czas, aby budować skrypty instalacji niestandardowej dla mojego projektu Pythona. +1 –