我是一名科学蟒蛇程序员,并且没有太多制作分发包的经验。
我要做的是创建一个将安装(或检查并安装)的完整软件包(Windows 7):
1)正确的python版本 2)我的包所需的第三方包,即numpy,pandas,matplotlib 3)我的python包
在用户的本地计算机上。
然后,我将把这个完整的包放在共享的网络驱动器上。基本上我想尽可能简单地将我创建的python功能移植到其他人身上。最终用户不会开发python代码。我阅读了Hitchiker's Guide和一些Python文档,但是在拼凑它们时遇到了一些麻烦。
编译可执行文件会更容易吗?这可能吗?
答案 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,使非编程人员可以更轻松地编辑脚本。