想把自己用 Python3 写的一个论坛脚本提供给其他人使用,碰到几个跨平台的问题。
可能是搜索思路不对,就像上次那样,明明一个方法解决了我的问题,但是我翻着文档却傻傻不知道……
折腾了半天累死了,偷懒又想了一个绕过的办法,让使用者安装 Python3 。因为在 windows 下安装 Python3 时,发现只是安装的话,还是很简单。
那么 pyinstaller 能否打包依赖,而不是打包解释器呢?
或者有没有其他的办法能够让使用者只需要安装 Python3 ,而不需要安装那么多依赖就能运行的办法?
pyinstaller 是我尝试(失败)次数比较多的,感觉自己搜索找不出来了,也可能是我搜索关键字不对? 所以问问,能给个中文 /英文关键字也可以。 目的就是想让最大化降低使用者的门槛。
1
fy 2016-05-17 00:59:28 +08:00 1
当然有啊,把你用的库拷贝出来,加到你源码里就好了。
简单的办法比如说用一些工具自动生成 requirements.txt ,然后弄个 env ,里面的那些东西就是你需要的全部库。 |
2
kokutou 2016-05-17 02:20:58 +08:00 via Android 1
试试 nuitka 编译?
|
3
Kilerd 2016-05-17 08:56:37 +08:00 via Android 1
用户自由度那一块又不是问题。是个人 python 设计水平的问题
|
4
pimin 2016-05-17 09:11:41 +08:00 via Android 1
如果对方可以安装 Python ,那还是很简单的。
直接把依赖放到项目目录,然后提供下载就好了 并不需要什么工具 |
5
a412739861 OP @fy
简单的拷贝加到源码里面? 弄 requirement 和 env 的话,我看 pyinstaller 里面的确有这部分配置。但是不清楚怎么做,其实我好奇 pyinstaller 能不能做到,不附带 Python ,而只带依赖和源码,使用者只安装 Python 即可。 @pimin 直接拷贝出来,放到项目里,运行就可以,按照 1L 说的,应该还要一些其他设置吧。 @kokutou 我尝试下,正在缓慢阅读英文文档…… @Kilerd 我知道是水平问题啊,我写的时候都是一路 Google 的,感觉找到对应关键词都很难,描述都描述不好,所以求教,一般是什么解决办法。 我想到比较简单的方法是同目录下建个文件,让用户按照格式把内容写进去,然后我到时候去读取。本来有点想做到,有些安装那样,在命令行里面就让用户输入内容,然后根据这些内容进行下一步操作,不过没成功。 |
6
fy 2016-05-17 13:00:09 +08:00
@a412739861 不是带 env ,是本地生成一个 env ,这里面的东西正好就是你要拷贝进去的东西。不用你再一个个挑库,还要小心是不是某个库缺了。
|
7
snoopygao 2016-05-17 14:36:08 +08:00 via iPhone
我用 pyinstaller 在 win 下一点问题都没有,打包成单文件 exe 然后让别人运行妥妥的
|
8
snoopygao 2016-05-17 14:37:26 +08:00 via iPhone 1
建议你先编写一个简单的 print 打包一下,也许是哪儿安装的问题
|
9
myisjon 2016-05-17 16:25:40 +08:00 1
建议用 pip 生成生成你用到的包罗,比如 pip freeze > requirements.txt,换一个环境的时候用 pip install -r requirements.txt 自动安装你程序需要的包,就解决依赖问题了,当然如果遇到包编译问题,就要具体解决了。
|
10
a412739861 OP |
11
a412739861 OP @myisjon 哦,已经搜索到,抱歉,跑步(走路)回来脑子发晕,把 pip 想成 pyinstaller 了,一下子没反应过来……
|