Reputation: 20058
How can I write in python some windows code to execute only when I am running the script in widnows, if I should run it in linux, that part of the windows code should be ignored, something simillar to this, in C++:
#ifdef windows
//code
#endif
#ifdef linux
//code
#endif
I tried something like this in python:
if os.name = 'nt':
#code
But in linux it gives me an error(I am using STARTF_USESHOWWINDOW, witch gives error).
startupinfo = None
if sys.platform == 'win32':
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= _subprocess.STARTF_USESHOWWINDOW #error here
startupinfo.wShowWindow = _subprocess.SW_HIDE # error here
Traceback (most recent call last):
File "/home/astanciu/workspace/test/src/main.py", line 10, in <module>
import _subprocess
ImportError: No module named _subprocess
Upvotes: 3
Views: 4808
Reputation: 601351
Checks for the platform should be necessary at much fewer places in Python than in C. If you really have to do it, the preferred way is to check sys.platform
rather than os.name
.
Upvotes: 7