请教下 python3 跨平台,以及提供他人使用遇到的几个问题

2016-05-17 00:03:39 +08:00
 a412739861

想把自己用 Python3 写的一个论坛脚本提供给其他人使用,碰到几个跨平台的问题。
可能是搜索思路不对,就像上次那样,明明一个方法解决了我的问题,但是我翻着文档却傻傻不知道……

折腾了半天累死了,偷懒又想了一个绕过的办法,让使用者安装 Python3 。因为在 windows 下安装 Python3 时,发现只是安装的话,还是很简单。
那么 pyinstaller 能否打包依赖,而不是打包解释器呢? 或者有没有其他的办法能够让使用者只需要安装 Python3 ,而不需要安装那么多依赖就能运行的办法?



pyinstaller 是我尝试(失败)次数比较多的,感觉自己搜索找不出来了,也可能是我搜索关键字不对? 所以问问,能给个中文 /英文关键字也可以。 目的就是想让最大化降低使用者的门槛。

3239 次点击
所在节点    Python
11 条回复
fy
2016-05-17 00:59:28 +08:00
当然有啊,把你用的库拷贝出来,加到你源码里就好了。
简单的办法比如说用一些工具自动生成 requirements.txt ,然后弄个 env ,里面的那些东西就是你需要的全部库。
kokutou
2016-05-17 02:20:58 +08:00
试试 nuitka 编译?
Kilerd
2016-05-17 08:56:37 +08:00
用户自由度那一块又不是问题。是个人 python 设计水平的问题
pimin
2016-05-17 09:11:41 +08:00
如果对方可以安装 Python ,那还是很简单的。
直接把依赖放到项目目录,然后提供下载就好了
并不需要什么工具
a412739861
2016-05-17 09:59:01 +08:00
@fy
简单的拷贝加到源码里面?
弄 requirement 和 env 的话,我看 pyinstaller 里面的确有这部分配置。但是不清楚怎么做,其实我好奇 pyinstaller 能不能做到,不附带 Python ,而只带依赖和源码,使用者只安装 Python 即可。
@pimin
直接拷贝出来,放到项目里,运行就可以,按照 1L 说的,应该还要一些其他设置吧。


@kokutou 我尝试下,正在缓慢阅读英文文档……

@Kilerd 我知道是水平问题啊,我写的时候都是一路 Google 的,感觉找到对应关键词都很难,描述都描述不好,所以求教,一般是什么解决办法。
我想到比较简单的方法是同目录下建个文件,让用户按照格式把内容写进去,然后我到时候去读取。本来有点想做到,有些安装那样,在命令行里面就让用户输入内容,然后根据这些内容进行下一步操作,不过没成功。
fy
2016-05-17 13:00:09 +08:00
@a412739861 不是带 env ,是本地生成一个 env ,这里面的东西正好就是你要拷贝进去的东西。不用你再一个个挑库,还要小心是不是某个库缺了。
snoopygao
2016-05-17 14:36:08 +08:00
我用 pyinstaller 在 win 下一点问题都没有,打包成单文件 exe 然后让别人运行妥妥的
snoopygao
2016-05-17 14:37:26 +08:00
建议你先编写一个简单的 print 打包一下,也许是哪儿安装的问题
myisjon
2016-05-17 16:25:40 +08:00
建议用 pip 生成生成你用到的包罗,比如 pip freeze > requirements.txt,换一个环境的时候用 pip install -r requirements.txt 自动安装你程序需要的包,就解决依赖问题了,当然如果遇到包编译问题,就要具体解决了。
a412739861
2016-05-17 21:13:10 +08:00
@snoopygao
尝试了下你的思路,果然打包 print.py 也不行,感觉还是环境的问题。

@fy
额,所以怎么生成这一个,只是简单的拷在一个目录里面总不行吧……
(我好像还不知道去哪拷,不过找找应该没问题……多坑坑)

@myisjon
我想尽量减少使用者的门槛,用 pip 感觉有点麻烦吧。不过怎么算是用 pip 生成包呢?
a412739861
2016-05-17 21:23:11 +08:00
@myisjon 哦,已经搜索到,抱歉,跑步(走路)回来脑子发晕,把 pip 想成 pyinstaller 了,一下子没反应过来……

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

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

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

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

© 2021 V2EX