问题描述
最近,我尝试使每天执行的一些任务自动化。
任务是:
我正在python中使用子进程模块,现在我可以实现到第2步
这是代码:
py_sample.py
import os
import subprocess
cwd = os.getcwd()
change_dir = os.chdir(cwd)
# to create a virtual env
virtualenv = input('Enter the name of virtual env : ')
#run the python virtualenv command
p1 = subprocess.run('python -m virtualenv {}'.format(virtualenv),shell=True)
virtualenv = os.path.join(os.getcwd(),virtualenv)
#go inside the virtual env folder
os.chdir(virtualenv)
#activate the virtual environment
p2 = subprocess.run(r'.\Scripts\activate.bat',shell=True)
cmd
C:\Users\swaru\Downloads>python py_sample.py
Enter the name of virtual env : django_env
created virtual environment Cpython3.8.2.final.0-32 in 1423ms
creator Cpython3Windows(dest=C:\Users\swaru\Downloads\django_env,clear=False,global=False)
seeder FromAppData(download=False,pip=bundle,setuptools=bundle,wheel=bundle,via=copy,app_data_dir=C:\Users\swaru\AppData\Local\pypa\virtualenv)
added seed packages: pip==20.1.1,setuptools==49.2.1,wheel==0.34.2
activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
C:\Users\swaru\Downloads>dir/b
django_env
您可以看到virtualenv已创建,但是我无法激活virtualenv。 我在这里缺少的任何人都可以指导我如何进行。
解决方法
必须在子过程命令中删除点(在\ Scripts之前):
安装
p2 = subprocess.run(r'.\Scripts\activate.bat',shell=True)
应该是
p2 = subprocess.run(r'\Scripts\activate.bat',shell=True)