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. 解决 genymotion 安装apk报错 app contains ARM native code and your Genymotion device cannot run ARM instructions

    1.某些APP安装在模拟器时提示“ this probably means that the app contains ARM native code and your Genymotion devi ...

  2. C++内存管理(new operator/operator new/operator delete/placement new)

    new operator 我们平时使用的new是new操作符(new operator),就像sizeof一样是语言内置的,不能改变它的含义,功能也是一样的 比如: string *ps = new ...

  3. 第三十四篇 玩转数据结构——哈希表(HashTable)

    1.. 整型哈希函数的设计 小范围正整数直接使用 小范围负整数整体进行偏移 大整数,通常做法是"模一个素数"   2.. 浮点型哈希函数的设计 转成整型进行处理   3.. 字符串 ...

  4. bzoj 3669: [Noi2014]魔法森林 (LCT & kruskal)

    这道题呢, 首先按照关键字a排序,然后不断地加边,用lct维护这个过程 具体实现: 先按照关键字a排序,枚举每一条边,判断两点是否已经联通(kruskal 部分)如果联通,就在两点路径间寻找最大的b, ...

  5. 051_switch语句的使用 052_while循环详解 053_for循环详解_dowhile简介 054_嵌套循环_循环相关练习

    051_switch语句的使用 package testmode2;/** * 测试switch语句 * 遇到多值判断的时候,使用switch.当然,switch完全可以使用ifelseifelse代 ...

  6. 用js实现鼠标点击爱心特效

    效果如图以下是代码 <script> !function(e, t, a) { function r() { for (var e = 0; e < s.length; e++) s ...

  7. 红帽 Red Hat Linux相关产品iso镜像下载【百度云】【更新7.6】

    不为什么,就为了方便搜索,特把红帽EL 5.EL6.EL7 的各版本整理一下,共享出来.原文链接正式发布 7.6 :RedHat Enterprise Server 7.6 for x86_64:rh ...

  8. mysql和oracle建表语句以及数据类型的区别

    1.mysql和oracle建表语句的区别 mysql DROP TABLE IF EXISTS `order`;CREATE TABLE `order` (  `id` int(11) NOT NU ...

  9. JavaScript arguments对象浅析

    arguments对象 概念 用法 属性 arguments对象 概念 arguments 是一个类数组对象.代表传给一个function的参数列表. 用法 function a() { consol ...

  10. 【网易官方】极客战记(codecombat)攻略-地牢-焰中舞动

    关卡连接: https://codecombat.163.com/play/level/fire-dancing 用循环节省输入并拯救英雄! 简介: 左 右 起舞,避开火球. 使用 while tru ...