Path: csiph.com!usenet.pasdenom.info!weretis.net!feeder1.news.weretis.net!feeder.erje.net!eu.feeder.erje.net!newsfeed.xs4all.nl!newsfeed2.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.052 X-Spam-Evidence: '*H*': 0.90; '*S*': 0.00; 'python,': 0.02; 'scripts': 0.03; 'pypi': 0.07; 'executed': 0.09; 'setup.py': 0.09; 'python': 0.11; 'declarations': 0.16; 'ideally,': 0.16; 'it".': 0.16; 'recipe': 0.16; 'subject:project': 0.19; 'help.': 0.21; 'seems': 0.21; 'separate': 0.22; 'package.': 0.24; 'pointer': 0.24; 'source': 0.25; 'script': 0.25; 'distribute': 0.26; 'converting': 0.30; 'message-id:@mail.gmail.com': 0.30; "i'm": 0.30; 'code': 0.31; 'releasing': 0.31; 'file': 0.32; 'run': 0.32; 'packaging': 0.33; '"the': 0.34; "i'd": 0.34; 'could': 0.34; "can't": 0.35; 'but': 0.35; 'received:google.com': 0.35; 'possible': 0.36; 'project': 0.37; 'list.': 0.37; 'thank': 0.38; 'to:addr:python- list': 0.38; 'list,': 0.38; 'fact': 0.38; 'to:addr:python.org': 0.39; 'release': 0.40; 'how': 0.40; 'even': 0.60; 'easy': 0.60; 'simple': 0.61; 'making': 0.63; 'kind': 0.63; 'myself': 0.63; 'zip': 0.64; 'become': 0.64; 'more': 0.64; 'dear': 0.65; 'life': 0.66; 'is!': 0.84; 'publicly.': 0.84; 'forgotten': 0.91; 'directly.': 0.95; 'online,': 0.96 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=29v8gFnXhoJCF7nikVah+E6VgHouRag3ae0zLr1MHjU=; b=qrnNq/+qLNxMJx+88Nj65/CLqR0e0TNq2XA5wTOYYLiYn/nG66aNN60u9jreGtz1XG ZoVNwSLfbp4Xiwc8ktz7KOkcSfxZtYCtSTyeFEu43ZoQadGO+A0wMfXvNuo7CAA/fqLJ LWH7nbC/0WXFvmteXaaBkjdG9yshkXzfkjJOnQgUsjgOc0lrNfOzxBr9CJnLnZT3eyvA vuv0SnSAp2nbWUnDeDbviLxksCx3D7qfDUwsChfkF7MjdNCQmVO/v13OdCuoQ1SFwYrj Y8au9liNvEPBltMHDP7nfnXMsD7WTBJfH9N9H4QxChdEgnhY8s+7eJ3IZcSd+conkDOt eqEQ== MIME-Version: 1.0 X-Received: by 10.14.221.193 with SMTP id r41mr16359605eep.92.1387192697445; Mon, 16 Dec 2013 03:18:17 -0800 (PST) Date: Mon, 16 Dec 2013 11:18:17 +0000 Subject: Packaging a private project From: Nicholas Cole To: Python Content-Type: text/plain; charset=ISO-8859-1 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 28 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1387192698 news.xs4all.nl 2908 [2001:888:2000:d::a6]:48437 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:62043 Dear List, What is the best way to distribute a private, pure python, Python 3 project that needs several modules (some available on pypi but some private and used by several separate projects) in order to run? I'd like to include everything that my project needs to run in a single package. The best way to do this seems to be to be to create symlinks to the source code of the "3rd party" modules I need and create a setup.py file that includes them in its "packages" list. Is this what other people do? But even more ideally, I'd like to package my script and its dependencies in a single zip file that can be executed by python directly. I see several declarations that this is possible online, but I can't find a simple recipe for converting a script and its dependencies into this kind of distribution. Could someone give me a pointer to a description of "the right way to do it". I'm making life harder for myself by using python 3 (PyInstaller still only supports Python 2) and by the fact that I can't release some of the necessary code publicly. Releasing modules and scripts on pypi has become very easy -- I'd forgotten how hard packaging private code is! Thank you for any help. N.