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. 【转载】Hive vs HBase

    转自:http://www.chinastor.com/a/hbase/0G3Z532014.html Hive是什么? Apache Hive是一个构建于Hadoop(分布式系统基础架构)顶层的数据 ...

  2. goto语句的本质

    除非跳出多个循环嵌套和远程注入技术,否则尽量少用goto goto会降低程序的可读性,让代码难以调试 利用递归也可以实现循环结构和do while类似 #define _CRT_SECURE_NO_W ...

  3. 变色html css js

    <!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...

  4. 利用Python数据分析基础

    一.Numpy的ndarray:一种多维数组 ndarray是一个通用的同构多维数据容器,其所有元素必须是相同的类型.每个数组都有一个shape(一个表示各维度的元组)和dtype(一个用于说明数据数 ...

  5. IntelliJ IDEA 2017.3尚硅谷-----生成 javadoc

    Locale:输入语言类型:zh_CN Other command line arguments:-encoding UTF-8 -charset UTF-8

  6. LED Decorative Light Manufacturer - Led Wall Lamp Performance Characteristics

    LED Decorative Light Manufacturer    introduction: LED wall lamp is a light-emitting diode as a ligh ...

  7. [RedHat]“is not in the sudoers file”解决方法

    当在终端执行sudo命令时,系统提示“luckchengis not in the sudoers file”: $ sudo ls Password: luckcheng is not in the ...

  8. 为什么hadoop中用到的序列化不是java的serilaziable接口去序列化而是使用Writable序列化框架

    继上一个模块之后,此次分析的内容是来到了Hadoop IO相关的模块了,IO系统的模块可谓是一个比较大的模块,在Hadoop Common中的io,主要包括2个大的子模块构成,1个是以Writable ...

  9. python numpy中sum()时出现负值

    import numpy a=numpy.random.randint(1, 4095, (5000,5000)) a.sum() 结果为负值, 这是错误的,a.sum()的类型为 int32,如何做 ...

  10. 「题解」「BZOJ-4668」冷战

    题目 点这里 思路及代码 我们可以使用并查集的按秩合并(但是不要路径压缩). 两个集合被合并起来,连上的边的权值就设为当前时间. 然后我们可以发现,询问 \(j\) 与 \(k\) 何时联通,就是查询 ...