windows环境下搭建python虚拟环境及离线移植

以python3.6为例

①安装virtualenv:

#pip安装之后在D:\Python36\Scripts目录下可以看到多了一个virtualenv.exe可执行文件
pip install virtualenv

②创建一个虚拟环境:

# venvname为虚拟环境名,会在当前目录下创建一个虚拟环境
virtualenv [venvname]

 

ps:当系统存在多个python版本时,直接执行这个命令会使用系统默认的python版本创建虚拟环境(windows下系统环境变量path中最靠前的python为默认版本),要指定python版本有以下2种方法:

1.virtualenv -p指定python解释器

#windows下路径为python解释器的完整路径,mac下路径为python安装目录路径(执行virtuaenv命令即可查看各命令选项),如下为windows示例
virtualenv -p D:\Python36\python.exe test1

 

 

2.将D:\Python27\Scripts\目录下的virtualenv.exe更改名称,比如加上版本号区分:virtualenv2.exe

 

③启动&退出虚拟环境:

# 启动虚拟环境时需要先切换到虚拟环境的Scripts目录下再执行如下命令。
activate
#退出虚拟环境
deactivate

 

 ps:mac下这个命令为source venv/bin/activate

以上虚拟环境的安装和创建就ok了,每次激活后就可以正常使用,接下来是虚拟环境在无网环境下的移植(切记,A和B 2个服务器上的python版本一定要一致!!!不仅是版本号,还有64bit或者32bit这些

A----->B(将A机器上的虚拟环境在无网情况下移植到B)

A机器上已有虚拟环境:

 ①   生成安装包列表文件:

ps:这个命令在非虚拟环境也可以使用,可以生成pip list获取的所有(除去python自带的)包列表

# 安装包列表保存到文件packages.txt中,文件名是自己定义,如果文件已经存在会被覆盖更新,不存在会自动创建
#需要在虚拟环境目录下执行这个命令(无需activate激活),否则生成的文件内容是系统python版本使用的安装包列表
pip freeze >packages.txt 

 ②   将包列表文件中的所有包下载到文件夹下:

#savetest\whls为保存安装包的路径,不存在会被创建,packages.txt为前一步生成的包列表文件
pip download -d  [savetest\whls]  -r [packages.txt]

 

 

B机器上有没有虚拟环境都可以

无虚拟环境直接在python环境下做以下操作

有虚拟环境则在虚拟环境下做以下操作,

③   将①和②中生成的包列表文件和安装包文件夹复制到B机器上

④   依据包列表文件以及安装包文件夹来安装包:

#savetest\whls为安装包文件夹路径,packages.txt为包文件列表(注意相对路径和绝对路径的选择)
pip install --no-index --find-links=[savetest\whls] -r [packages.txt]

 

ps:如果是在有网络的情况下要移植环境,pip install -r [packages.txt]  即可

 

常见问题:

1.一段时间不使用虚拟环境,在使用时报错了,解决如下

2.今天迁移到无法访问外网的环境折腾了一天,各种报错,下载pip和setuptools的wheel失败什么的,就算忽略这2个的安装,在读文件安装包的时候也会报错说找不到该包,最后发现是本地的python是32bit的,新环境装的是64bit的!!!!!具体问题如下:

①如果是迁移到虚拟环境出现了以下问题

解决方案:

如果需要pip和setuptools这些工具,可以在虚拟环境下手工安装

②提示文档中的包,在包文件夹下找不到,但是检查是有的。后来发现是因为本地是python3.6.5-32bit,但是要迁移的目标服务器是python3.6.5-64bit,,后来重装了python就好了 

 

 

https://www.cnblogs.com/yy-cola/p/9764822.html 

 

 

linux下也相似,参考:

https://www.cnblogs.com/wt11/p/6216508.html

posted @ 2018-10-10 16:46  luckylemon  阅读(8589)  评论(0编辑  收藏  举报