把python拷到u盘

greedman
nevermore 04月10日 字数 201

在自己电脑里把python文件夹拷到u盘,然后在插u盘的电脑上设置一下环境变量是不是就可以跑自己写的程序?

还是把程序做成exe文件拷到u盘里?

需要用到自己写的程序,但该电脑没有装python

发自「今日水木 on iPhone 11」

Python Python的自由天空
16 个回复
sah166
撒轰 04月10日

可以

【 在 greedman 的大作中提到: 】

: 在自己电脑里把python文件夹拷到u盘,然后在插u盘的电脑上设置一下环境变量是不是就可以跑自己写的程序?

: 还是把程序做成exe文件拷到u盘里?

: 需要用到自己写的程序,但该电脑没有装python

: ...................

javaboy
喝了咖啡就话多-_-; 04月10日

没问题。我就是这么用的。七、八年没装过python了。

【 在 greedman (nevermore) 的大作中提到: 】

: 在自己电脑里把python文件夹拷到u盘,然后在插u盘的电脑上设置一下环境变量是不是就可以跑自己写的程序?

: 还是把程序做成exe文件拷到u盘里?

: 需要用到自己写的程序,但该电脑没有装python

: ...................

dmyk
东明雅客 04月10日

但是如果用到了一堆import库的话

是不是都得考过去

有啥方便的办法么

【 在 javaboy (喝了咖啡就话多-_-;) 的大作中提到: 】

: 没问题。我就是这么用的。七、八年没装过python了。

MetalSlugX
冰天雪地敲冰块,春光灿烂挖臭虫 04月10日

没有问题

放在Lib\site-packages\下面的,会自动加入sys.path

【 在 dmyk (东明雅客) 的大作中提到: 】

: 但是如果用到了一堆import库的话

: 是不是都得考过去

: 有啥方便的办法么

: ...................

javaboy
喝了咖啡就话多-_-; 04月11日

对,没问题的。

【 在 MetalSlugX (冰天雪地敲冰块,春光灿烂挖臭虫) 的大作中提到: 】

: 标  题: Re: 把python拷到u盘

: 发信站: 水木社区 (Fri Apr 10 22:03:11 2020), 站内

: 没有问题

: 放在Lib\site-packages\下面的,会自动加入sys.path

: 【 在 dmyk (东明雅客) 的大作中提到: 】

: : 但是如果用到了一堆import库的话

: : 是不是都得考过去

: : 有啥方便的办法么

: : ...................

: --

hgoldfish
老鱼 04月11日

python 依赖于 msvcrt,有些电脑没有安装。最好把相关的安装包带上。每个版本用的编译器版本不一样。你可以在官网上面查到具体的版本。

【 在 greedman (nevermore) 的大作中提到: 】

: 在自己电脑里把python文件夹拷到u盘,然后在插u盘的电脑上设置一下环境变量是不是就可以跑自己写的程序?

: 还是把程序做成exe文件拷到u盘里?

: 需要用到自己写的程序,但该电脑没有装python

: ...................

javaboy
喝了咖啡就话多-_-; 04月11日

不是必须的。

比如python2.7是用vs2008编译的,把9.0.21022.8版(一定要这个版本,不然要自己打patch)的这两个文件放到PATH里,或者放在python27.dll旁边就可以:

msvcr90.dll

Microsoft.VC90.CRT.manifest

我现在做的windows部署都是默认安装完,把文件夹复制过去,双击就跑了。啥都不用装。

【 在 hgoldfish (老鱼) 的大作中提到: 】

: python 依赖于 msvcrt,有些电脑没有安装。最好把相关的安装包带上。每个版本用的编译器版本不一样。你可以在官网上面查到具体的版本。

hgoldfish
老鱼 04月11日

我记得新的 msvcrt 没这么简单了。会往 system32 里面安装一堆文件。

【 在 javaboy (喝了咖啡就话多-_-;) 的大作中提到: 】

: 不是必须的。

: 比如python2.7是用vs2008编译的,把9.0.21022.8版(一定要这个版本,不然要自己打patch)的这两个文件放到PATH里,或者放在python27.dll旁边就可以:

: msvcr90.dll

: ...................

dmyk
东明雅客 04月11日

就是安装python?

【 在 javaboy (喝了咖啡就话多-_-;) 的大作中提到: 】

: 不是必须的。

: 比如python2.7是用vs2008编译的,把9.0.21022.8版(一定要这个版本,不然要自己打patch)的这两个文件放到PATH里,或者放在python27.dll旁边就可以:

: msvcr90.dll

: ...................

javaboy
喝了咖啡就话多-_-; 04月11日

不用,python也是复制粘贴过去。

【 在 dmyk (东明雅客) 的大作中提到: 】

: 就是安装python?

dmyk
东明雅客 04月11日

啊,能具体讲讲么

就是把Python的目录和py文件一起copy过去?

用的pandas这些库文件也一起?

【 在 javaboy (喝了咖啡就话多-_-;) 的大作中提到: 】

: 不用,python也是复制粘贴过去。

javaboy
喝了咖啡就话多-_-; 04月11日

我拿python2做例子。

1. 安装官方的python2.7

2. 安装pip, numpy, pandas 等等库

3. 把c:\python27这个目录复制到一个空u盘上

4. 去控制面板把所有msvc9的runtime都删掉(如果你熟悉winsxs结构这步不是必须)

5. 安装9.0.21022.8版本的msvcrt runtime(非最新版,python依赖这个版本)

6. 去windows目录下找到msvcr90.dll和Microsoft.VC90.CRT.manifest

7. 把这两个文件复制到u盘里和python.exe放在一个目录下,完工。

8. 全新安装个winxp/win7,把u盘插上去,双击python.exe。开玩你的绿色版python~

9. 如果报msvcrt错误,右键查看msvcrt90.dll的属性,确认下版本是不是9.0.21022.8。

【 在 dmyk (东明雅客) 的大作中提到: 】

: 啊,能具体讲讲么

: 就是把Python的目录和py文件一起copy过去?

: 用的pandas这些库文件也一起?

: ...................

dmyk
东明雅客 04月11日

赞。

Python3 的对应文件是不是不一样了

【 在 javaboy (喝了咖啡就话多-_-;) 的大作中提到: 】

: 我拿python2做例子。

: 1. 安装官方的python2.7

: 2. 安装pip, numpy, pandas 等等库

: ...................

javaboy
喝了咖啡就话多-_-; 04月11日

类似。主要看微软是怎么打包的。

不过既然python开源了,不妨碍人用mingw编译一个不依赖一堆文件的。

【 在 dmyk (东明雅客) 的大作中提到: 】

: 赞。

: Python3 的对应文件是不是不一样了

MetalSlugX
冰天雪地敲冰块,春光灿烂挖臭虫 04月12日

补充一下:是很多包(例如pip),安装之后,在script目录下放exe文件

这些exe文件,不友好,里面记录了绝对文件位置

所以很可能你运行pip.exe失败

如果失败,应该用 python -m pip 取代你原先打算用的 pip.exe

【 在 javaboy (喝了咖啡就话多-_-;) 的大作中提到: 】

: 我拿python2做例子。

: 1. 安装官方的python2.7

: 2. 安装pip, numpy, pandas 等等库

: ...................

javaboy
喝了咖啡就话多-_-; 04月12日

这些exe只是个forwarder,xxx.exe会通过几个方式找到python.dll或者python.exe,然后把命令重定向给xxx_script.py。每个exe的二进制内容都是一样的。

这个exe模板是由setuptools自带的,文件名为cli.exe或者gui.exe,在setup.py install的时候根据安装脚本的名字自动复制并改一个文件名。我用过的版本中没有记录绝对位置。随便改名都是可以用的。

你们如果遇到绝对路径问题,可以去搜下载这个文件:setuptools-0.6c11-py2.7.egg,把里面的cli.exe解压出来,去覆盖掉pip自动生成的那些exe,就行了。

还是不行的话我在附件里备份了一个我的版本,可以自取。

【 在 MetalSlugX (冰天雪地敲冰块,春光灿烂挖臭虫) 的大作中提到: 】

: 补充一下:是很多包(例如pip),安装之后,在script目录下放exe文件

: 这些exe文件,不友好,里面记录了绝对文件位置

: 所以很可能你运行pip.exe失败

: 如果失败,应该用 python -m pip 取代你原先打算用的 pip.exe