编写一个完整的独立python包

时间:2014-06-23 15:34:58

标签: python package

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

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

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

在用户的本地计算机上。

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

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

3 个答案:

答案 0 :(得分:0)

我有一段时间没有这样做,但我曾经使用innosetup创建一个安装程序来安装所有必需的软件包。您可以将所有包全部包含到安装程序中。

答案 1 :(得分:0)

这可能不是最好的路线(我无法弄清楚py2exe),但你可以创建一个运行二进制安装程序包的批处理文件,安装python,pip等,然后运行pip install -r requirements.txt

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

你也可以压缩python目录。安装python,解压缩文件夹,然后将其复制?

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

pip示例: 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

答案 2 :(得分:0)

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

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

这并不是你所要求的答案,但可能值得研究。它还包括一些IDE,使非编程人员可以更轻松地编辑脚本。