Почему скрипт Python работает по-другому в приглашении Spyder vs cmd
У меня есть следующий скрипт test.py:
import pathlib, os
path = "C:\\Windows"
pathparent = pathlib.Path("C:\\Windows").parent
if os.path.exists(pathparent):
print("path exists")
и когда я выполняю его в IDE Spyder, я получаю это:
path exists
когда я запускаю его из командной строки (python test.py), я получаю это:
Traceback (most recent call last):
File "test.py", line 6, in <module>
if os.path.exists(pathparent):
File "C:\Anaconda3\lib\genericpath.py", line 19, in exists
os.stat(path)
TypeError: argument should be string, bytes or integer, not WindowsPath
Есть идеи, почему я получаю разные результаты?
Примечание: я знаю, что перенос pathparent в str() сделает оператор if успешным, но я хочу знать, почему две среды дают разные результаты.
1 ответ
Решение
os.path.exists()
начал принимать объекты пути в Python 3.6, и ваша проблема возникает в ваших приглашениях cmd, так как он работает под управлением Python 3.5, измените его на 3.6, чтобы решить вашу проблему.