Reputation: 53
Having a frustrating time with scheduling a Python script (C:\Python27\test.py), which has the following code:
import xlrd
import csv
with xlrd.open_workbook('Z:/somefile.xls') as wb:
sh = wb.sheet_by_index(3)
with open('Z:/somefile.csv', 'wb') as f:
c = csv.writer(f)
for r in range(sh.nrows):
c.writerow(sh.row_values(r))
This script is supposed to take worksheet 3 in "somefile.xls" and save it into it's own .csv file. When I run it manually from the Python Shell, it works as intended.
Z:\ is a mapped drive located on an entirely different server.
When I try to run from the Task Scheduler, I keep getting the 0x1 result code. I have the Task set up as the following:
I've read quite a few posts, all with different suggestions, none of which worked.
Anyone else run into this situation before?
Jeff
Upvotes: 5
Views: 9007
Reputation: 11
This issue can also occur if you have more than one Python script in the directory you are using. The Python terminal would open for half a second then close with runtime errors.
If you have only one script in the directory and put the other script it into a different directory, the scheduled task would execute as expected.
Upvotes: 0
Reputation: 1
For anyone running into this problem who is using a virtual environment:
your_project_folder\your_venv\Scripts
and find python.exe
.where python
for instance)This will use the Python instance that contains all your packages to run your code instead of the globally installed version of Python, which may or may not contain them. As a result, it should prevent errors caused by missing packages which can be a common cause of the (0x1)
error.
An alternative solution would be to install all of your required packages globally on your machine, though in general, this isn't a great practice.
NOTE: There can be other causes of the (0x1)
error, such as if you have bugs in your code, but if all is smooth there and you couldn't get your script to run from the Task Scheduler, this should solve it for you.
Hope this helps!
Upvotes: 0
Reputation: 1
I had the similar issues when trying to run as another user privileges. I finally logged in to server with "another user" account and find out that python modules for that user were missing.
I ran the .py script with that user with command line and installed all the missing modules with pip for that user.
Then everything started working perfectly.
Upvotes: 0
Reputation: 11
I had the same problem and tried all the way above but didn't work.
My configuration (like this):
python.exe
D:\test.py
C:\Python37\
Finally, I make out that I read the file in my python script
pd.read_excel("./xlsx/XXX.xlsx")
I thought it will direct to "D:/xlsx/XXX.xlsx
" but it didn't. I changed the code in my script:
pd.read_excel("D:/xlsx/XXX.xlsx")
and it works for me.
Upvotes: 1
Reputation: 869
I Had the same problem: But problem was because path had a space between words. "C:/python/pythonw.exe" "E:\python\Sales prog\sales prog111.py" I did: "C:/python/pythonw.exe" "E:\python\Salesprog\salesprog111.py"
Upvotes: 0
Reputation: 513
I Had the same problem, maybe you can try the following configuration:
This configuration works for me. Hope this help.
Upvotes: 1
Reputation: 5534
I ran into this a few weeks ago, Task Scheduler can be a real pain!
For whatever reason, I have never been able to get a script to run when the "Run whether user is logged on or not" option is selected. I spent something like 10 hours on the phone with my IT department trying to figure it out. It can't be done. Un-checking that option should then allow your script to run.
Upvotes: 8