1.New a python project
2.cd %project.home%切换到项目根目录
3.运行setup.bat创建venv虚拟环境 (注意内网运行setup.bat需要手动将requirements.txt需要的安装包下载下到dependency目录(pip download -d ./dependency -r requirements.txt),外网直接运行)
4。等待安装结束重新打开project环境默认引用了interpreter无异常显示,否则手动配置刚才创建的venv/Scripts/python.exe;
5.注意setup.bat 和denpendency文件夹,fit_env_dir.py以及requirements.txt 都必须在project根目录下

setup.bat

@echo off
echo "start check requirements.txt file"
if exist %cd%\requirements.txt (
echo "check requirements.txt finish"
) else (
echo "not exist requirements.txt"
)
echo "start init env"
SET curdir=%cd%\venv
echo %curdir%
if exist %curdir% (
RD /S /q %cd%\venv
echo "delete old venv"
TIMEOUT /T 8
echo "start create new venv"
python -m venv ./venv
TIMEOUT /T 5
echo "create new venv finish"
) else (
python -m venv ./venv
echo "finish create venv"
)
call %cd%\venv\Scripts\activate.bat
echo "source env finish"
echo "pwd is : %cd%"
if exist %cd%\dependency (
::"delete old dependency"
::RD /S /q %cd%\dependency
echo "have exist dependency"
TIMEOUT /T 8
md dependency
echo "finish new dependency dir create"
) else (
md dependency
echo "create dependency dir finish"
)
echo "start download pack into dependency"
pip download -d ./dependency -r requirements.txt
pip install --no-index --ignore-installed --find-links=./dependency -r requirements.txt
echo "install packages flowing:"
pip list
deactivate
echo "exit env virtual"
echo "wait 10 seconds...."
TIMEOUT /T 5
python -m %cd%\fit_env_dir.py
echo "pyhton3 fit envdir finish"
TIMEOUT /T 10

3.fit_env_dir.py:

import os,re
def fit_activate_bat():
with open(os.getcwd()+"\\venv\\Scripts\\activate.bat","r+")as f:
strings=f.readlines()
for index,line in enumerate(strings):
if line.__contains__("VIRTUAL_ENV="):
res=re.findall('VIRTUAL_ENV=(.*)"',line)[0]
strings[index]=line.replace(res,os.getcwd()+"\\venv")
with open(os.getcwd() + "\\venv\\Scripts\\activate.bat", "w+",encoding="utf-8")as h:
h.writelines(strings)
def fit_Activateps1():
with open(os.getcwd()+"\\venv\\Scripts\\Activate.ps1","r+",encoding="utf-8")as e:
lines=e.readlines()
for index, line in enumerate(lines):
if line.__contains__("env:VIRTUAL_ENV="):
res = re.findall('env:VIRTUAL_ENV="(.*)"', line)[0]
lines[index] = line.replace(res, os.getcwd() + "\\venv")
with open(os.getcwd() + "\\venv\\Scripts\\Activate.ps1", "w+", encoding="utf-8")as g:
g.writelines(lines) def all_fit():
fit_activate_bat()
fit_Activateps1()
if __name__ == '__main__':
all_fit()

  

python 创建虚拟环境:bat实现一键的更多相关文章

  1. Python创建虚拟环境

    用于创建和管理虚拟环境的模块称为 venv.venv 通常会安装你可用的最新版本的 Python.如果您的系统上有多个版本的 Python,您可以通过运行 python3 或您想要的任何版本来选择特定 ...

  2. python 创建虚拟环境时报错OSError, setuptools下载失败

    错误信息如下: Using base prefix 'c:\\users\\huful\\appdata\\local\\programs\\python\\python36-32'New pytho ...

  3. python 创建虚拟环境

    创建一个文件夹:mkdir tf_env 进入到文件夹内:cd tf_env 创建虚拟环境:python3 -m venv tensorflow-dev 激活虚拟环境:source tensorflo ...

  4. 新的云主机 python 创建虚拟环境

    1.为什么要搭建虚拟环境? 问题:如果在一台电脑上, 想开发多个不同的项目, 需要用到同一个包的不同版本, 如果使用上面的命令, 在同一个目录下安装或者更新, 新版本会覆盖以前的版本, 其它的项目就无 ...

  5. python创建虚拟环境(Windows)

    >>>构建Python虚拟环境的目的是为了防止真实环境被破坏!!! >>>每一个项目建议用一个虚拟环境为了防止软件版本号冲突!!! 1.在终端切换到一个新的磁盘 如 ...

  6. python 创建虚拟环境(virtualenv)

    原文地址:https://www.jianshu.com/p/2645d8f2e690 另附连接:Linux环境下虚拟环境virtualenv安装和使用 virtualenv 安装 1.Install ...

  7. 多版本python创建虚拟环境

    不表示默认的python使用 mkvirtualenv -p c:\python27\python.exe  test1,即 mkvirtualenv -p  要安装的版本的python.exe路径  ...

  8. Anaconda的使用和包的更新;conda 创建虚拟环境

    安装: 官网下好后,直接 sh * 会提示安装路径,选择No的话重新填入安装的路径就可以了: 添加到环境变量: echo 'export PATH="~/anaconda2/bin/$PAT ...

  9. PyChram创建虚拟环境

    目录 1. python创建虚拟环境 2. pycharm中添加python虚拟环境 1. python创建虚拟环境 首先要安装virtualenv模块.打开命令行,输入pip install vir ...

随机推荐

  1. python3练习100题——014

    这题卡了我一整天,然后还是看答案撸了一遍- 原题链接:http://www.runoob.com/python/python-exercise-example14.html 题目:将一个正整数分解质因 ...

  2. python setup.py 安装和卸载 的正确姿势

    1.install python setup.py install --record files.txt 2. uninstall 删除这些文件 cat files.txt | xargs rm -r ...

  3. 【玩转SpringBoot】SpringBoot应用的启动过程一览表

    SpringBoot应用的启动方式很简单,就一行代码,如下图01: 其实这行代码背后主要执行两个方法,一个是构造方法,一个是run方法. 构造方法主要内容就是收集一些数据,和确认一些信息.如下图02: ...

  4. JS中使用lambda筛选list

    LevelEnum.filter(x=>x.Category=="水利工程")

  5. js bug

    1 加载模块脚本失败:服务器以非JavaScript MIME类型“text/html”响应. 描述:ES6 import Class时路径出错,少一个 / ,添上即可

  6. 洛谷 1219:八皇后 (位运算 & DFS)

    题目链接: https://www.luogu.org/problem/show?pid=1219#sub row:受上面的皇后通过列控制的位置 ld:受上面的皇后通过从右至左的斜对角线控制的位置 r ...

  7. SQL Server中使用msdb数据库的存储过程sp_delete_backuphistory和sp_delete_database_backuphistory来删除备份和恢复历史数据

    根据微软文档对sp_delete_backuphistory存储过程的介绍,SQL Server在每次备份和恢复数据库后,会向msdb系统数据库的备份和恢复历史表写入数据,如果SQL Server经常 ...

  8. command failed: npm install --loglevel error --registry=https://registry.npm 用vue-cli 4.0 新建项目总是报错

    昨天新买的本本,今天布环境,一安装vue-cli发现都4.0+的版本了,没管太多,就开始新建个项目感受哈,一切运行顺利,输入 "vue create app" 的时候,一切貌似进展 ...

  9. js实现图片轮播图

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  10. gVim for windows 简单使用教程

    vim 是一个具有很多命令的功能非常强大的编辑器.限于篇幅,在本教程当中    就不详细介绍了.本教程的设计目标是讲述一些必要的基本命令,而掌握好这    些命令,您就能够很容易将vim当作一个通用的 ...