Windows 작업 스케줄러가있는 [Virtualenv Dependent] Python 스크립트 예약 모든 패키지가

오전 3시에 시작하여 평일 오후 5시에 휴식하도록 Python 스크립트를 예약하고 싶습니다. 그러나 모든 패키지가 가상 환경에 설치되므로 virtualenv를 시작해야 할 때 문제가 발생합니다.

특정 시간에 스크립트를 실행할 수는 있지만 가상 환경을 활성화 할 수는 없습니다 (일반적으로 ” env\scripts\activate “) 다음은 내 행동이 어떻게 생겼는지 보여줍니다.

enter image description here

정품 인증 가상화 기능을 통합하려면 어떻게해야합니까? 스크립트를 중단하기 위해 내 행동을 어떻게해야합니까?



답변

내 workon.bat 스크립트는 Env 속성을 올바르게 설정하지 않지만이 최종 명령은 작업 스케줄러에서 작동합니다.

cmd / C c : /Users/name/Env/workon_name/Scripts/activate.bat & amp; 파이썬 run_script.py


답변

배치 파일을 만들면 어떻게 될까요? test.bat먼저 가상 환경을 활성화 한 다음 파이썬 스크립트를 실행합니다. 같은 것 :

env\scripts\activate
D:\Python\Aldabra\env\Scripts\python.exe "D:\Python_scpt\test.py"

그런 다음 Windows Task Scheduler에서 스크립트를 실행하십시오.

스크립트에서 나는 또한 env\scripts\activate 부분은 스크립트가 실행되는 위치에 의존하지 않습니다. 즉 절대 경로로 만듭니다.


답변

당신은 그것을 사용하여 명령 줄에서 만들 수 있습니다 schtasks 가상 환경 디렉토리 내의 python 실행 파일에 대한 경로 지정

schtasks /Create /SC HOURLY /TN VirtualEnvPythonTask /TR "PATH_TO_VIRTUAL_ENV_PYTHON_EXECUTABLE PATH_TO_PYTHON_SCRIPT"

또는 작업 스케줄러 GUI를 사용할 수 있습니다. Action: start a program 설정 Program/script: 가상 환경 경로의 python 실행 파일에 python 스크립트를 추가합니다. Add arguments (optional):

예를 들어, 환경 호출 MSSQL-ETL-ENV와 함께 conda를 사용하고 있습니다. 파이썬 경로는 다음과 같습니다.

C:\Users\dbaker\AppData\Local\Continuum\anaconda3\envs\MSSQL-ETL-ENV\python

답변

직접 전화를 걸 때 python.exe 파일을 가상 환경에서 사용하면 실제로 간접적으로 virtualenvironment.

입력 할 때 .\env\Scripts\activate, 경로 변수를 변경하는 중입니다. Lib 가상 환경에 설치된 라이브러리가 들어있는 디렉토리. 결과적으로 파이썬은 해당 라이브러리를 검색 할 때 virtualenv에서 이러한 라이브러리를 먼저 찾아서 사용합니다.

다른 제약 조건이 없다면 C:\path_to_virtualenvip\python.exe C:\path_to_python_file.py

가상 환경에서 python 파일을 실행하기에 충분해야합니다.