python虚拟环境迁移
激活虚拟环境
.../venv/scripts/activate
创建 requirements
pip freeze --all > requirements.txt
下载依赖包
pip install --download . -r requirements.txt
换机器
创建新的虚拟环境
pip install virtualenv
virtualenv -p python解释器路径 项目路径\venv
激活新的虚拟环境
.../venv/scripts/activate
安装包
cd requirements所在路径
pip install --no-index --find-links= . -r requirements.txt
注意命令中的.点 代表是当前目录也就是whls目录;是下载的包和requirements.txt所在目录。上面方法不能安装zip和gz包
有网的情况下,也可以直接安装
pip install -r requirements.txt
代码实现离线安装
下载包
import os
def download_packages(path):
"""
下载项目依赖的包文件
:param path:项目路径
:return:
"""
# 如果没有venv文件夹
if not os.path.exists('venv'):
os.system('pip freeze > requirements.txt '
'&& pip download -d packages -r requirements.txt'.format(path))
# 如果有venv文件夹
if os.path.exists('venv'):
os.system('{}/venv/scripts/activate '
'&& pip freeze > requirements.txt '
'&& pip download -d packages -r requirements.txt'.format(path))
if __name__ == '__main__':
path = 'C:/Users/xiahuadong/Desktop/number_humen'
download_packages(path)
安装包
# 遍历path下所有文件的路径列表
import glob
import os
def walk_type(path, file_type):
paths = glob.glob(os.path.join(path,#存放图片的文件夹路径
file_type # 文件类型,*代表所有文件
)
)# path下所有file_type类型的文件的路径列表
return paths
def install_packages(python_path,path):
"""
安装项目依赖的包
:param python_path:python解释器路径
:param path:项目路径
:return:
"""
# 如果没有venv就创建
if not os.path.exists('venv'):
# 创建虚拟环境
os.system('pip install virtualenv '
'&& virtualenv -p {} {}/venv'.format(python_path,path))
paths = walk_type(path+'/packages/','*')
print(paths)
# 安装包
for path in paths:
os.system('{}/venv/scripts/activate && pip install {}/packages/'.format(path,path))
if __name__ == '__main__':
path = 'C:/Users/xiahuadong/Desktop/number_humen'
python_path = "C:/Users/xiahuadong/AppData/Local/Programs/Python/Python36/python.exe"
install_packages(path)