求大牛帮忙打包下这个 Python

2015-03-15 00:56:31 +08:00
 TwoBall

http://my.oschina.net/cuilili/blog/382278
本人完全小白,求大牛打包个exe文件或者给个食用方法。

3876 次点击
所在节点    Python
9 条回复
manoon
2015-03-15 01:02:44 +08:00
如果程序可用,你想发给其它同学炫耀一下,直接找个py2exe 不就行了。

如果程序可用,你直接装个python,外加bs 库和其它需要的库。直接跑不就行了?

如果程序不可用,这个,那你好好学习吧。一直debug吧。
ynyounuo
2015-03-15 01:44:44 +08:00
/t/168561
↑ ↑ ↑ 这个疑问是不是引刃而解了?
loading
2015-03-15 05:26:01 +08:00
@ynyounuo

嗯,楼主你好白!懂了吗?

1楼一给出解决方法,祝好运。
kn007
2015-03-15 05:43:06 +08:00
。。。本不想浪费我这宝贵的金币的。。。但特么的还是要说两句。。。楼主。。。人家都把源码给你,你还想咋滴。
hahasong
2015-03-15 09:08:33 +08:00
@manoon 我也有个问题想问,如果自己写的代码里引用了第三方需要安装的二进制模块,比如cipher加密库,request库等。最怎样才能打包成让用户不用安装任何包直接运行的绿色文件夹,或者像goagent那样自带运行环境,只用双击的exe
oott123
2015-03-15 09:59:47 +08:00
@hahasong 你看看 GoAgent 怎么做的不就好了…
我记得它给出了完善的方案。还独立出来并且开源了。
lololol233
2015-03-16 11:09:31 +08:00
@hahasong 对于纯python的模块 clone源码之后 进入目录 运行python setup.py dist egg
找到egg文件 放入项目目录下eggs目录中 在项目初始化/__init__.py代码中加入
curr_dir = os.path.dirname(os.path.realpath(__file__))
eggs_dir = os.path.join(curr_dir, 'eggs')
egg_lst = ['xxx.egg', 'abc.egg']
egg_lst = map(lambda x: os.path.join(eggs_dir, x), egg_lst)

c extension的话平台不同就麻烦了 估计可以交叉编译
x14oL
2015-03-22 03:08:51 +08:00
@lololol233 你好,对于你的回复我看的不太明白。
假如我现在要打包requests模块
我在安装完成后,将requests模块拷贝到我的项目目录下面,然后__init__.py中添加:
curr_dir = os.path.dirname(os.path.realpath(__file__))
eggs_dir = os.path.join(curr_dir, 'requests')
egg_lst = ['xxx.requests', 'abc.requests']
egg_lst = map(lambda x: os.path.join(requests_dir, x), erequestsg_lst)
?
lololol233
2015-03-22 05:47:40 +08:00
@x14oL
打包成egg文件这步不是必须的 你可以直接把源码目录复制到你项目的某个子目录中
假设你现在已经生成了requests.egg文件 那么就将其复制到your_project/egg/下
在你项目的初始化脚本或者__init__.py(这完全取决于你项目是如何被运行的, __init__.py用途请自行google)中添加:
# 找到egg的绝对路径
curr_dir = os.path.dirname(os.path.realpath(__file__))
eggs_dir = os.path.join(curr_dir, 'egg')
# 指定egg文件名/源码目录名
egg_lst = ['requests.egg']
# 添加模块到os.path
egg_lst = map(lambda x: os.path.join(requests_dir, x), egg_lst)
# import模块
import requests
# 下面就可以使用requests了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/176964

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX