【问题标题】:writing a complete stand-alone python package编写一个完整的独立python包
【发布时间】:2014-06-24 09:02:05
【问题描述】:

我是一名科学 Python 程序员,没有太多制作分发包的经验。

我要做的是创建一个完整的包(Windows 7),它将安装(或检查并安装):

1) 正确的 python 版本 2) 我的包所需的第三方包,即 numpy、pandas、matplotlib 3)我的python包

在用户的本地机器上。

然后我会将这个完整的包放在共享的网络驱动器上。基本上,我想让我创建的 python 功能尽可能容易地移植给其他人。最终用户将不会开发 Python 代码。我阅读了 Hitchiker's Guide 和一些 Python 文档,但在将它们拼凑在一起时遇到了一些麻烦。

编译可执行文件会更容易吗?这可能吗?

【问题讨论】:

标签: python package


【解决方案1】:

我已经有一段时间没有这样做了,但我曾经使用innosetup 创建一个安装程序来安装所有必要的软件包。您可以将所有软件包都集成到安装程序中。

【讨论】:

    【解决方案2】:

    这可能不是最好的方法(我无法弄清楚 py2exe),但您可以创建一个通过二进制安装程序包运行的批处理文件,用于安装 python、pip 和其他,然后运行pip install -r requirements.txt

    如果使用 pip,此方法需要互联网连接。

    您也可以压缩 python 目录。安装python,解压文件夹,复制过来?

    或者包括所有的 Windows 安装程序二进制文件?

    点示例: How to pip install packages according to requirements.txt from a local directory?

    pip 安装程序:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pip

    python 安装程序:https://www.python.org/downloads/

    示例批处理脚本:

    @ ECHO off
    @ REM off
    # msi examples
    msiexec /i dependencies\python-2.7.6.msi
    msiexec /i dependencies\pycurl-7.19.0.2.win32-py2.7.msi
    # exe examples
    start dependencies\paramiko-1.7.7.1.win32-py2.7.exe
    start dependencies\pycrypto-2.3.win32-py2.7.exe
    start dependencies\pip-1.5.4.win32-py2.7.exe
    start dependencies\wxPython3.0-win32-3.0.0.0-py27.exe
    pip install image
    pip install -r requirements.txt
    pause
    

    示例 requirements.txt:

    image==1.2
    BeautifulSoup==3.2.1
    PyYAML==3.10
    beautifulsoup4==4.3.2
    distribute==0.6.49
    idna==0.3
    pyparsing==2.0.1
    python-dateutil==2.2
    pywin==0.3.1
    selenium==2.40.0
    six==1.6.1
    

    一个有用的 pip 函数是使用 pip freeze (docs) 来获取依赖项/要求。

    批量设置python路径示例:

    set path=%path%;C:\python27;C:\python27\scripts
    reg ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /d %path% /f
    

    【讨论】:

      【解决方案3】:

      这有点离题,但我在工作中所做的是将Anaconda 的安装程序复制到共享目录。

      它包括几乎所有的科学库,因此我的每个同事都使用相同的安装和库工作。它将在没有管理员权限的情况下安装,这在我工作的地方很重要。它还将 python.exe 添加到他们的路径中,这样他们就可以在下载脚本的任何地方执行脚本。

      这并不完全是您所问问题的答案,但可能值得研究。它还包括几个 IDE,使非程序员更容易编辑脚本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-29
        • 2012-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-21
        • 2017-08-12
        • 1970-01-01
        相关资源
        最近更新 更多