"MinGW"와 같은 것은 없습니다. Windows 용 Unix 에뮬레이션 환경 인 MSYS를 의미 할 수도 있습니다. MSYS는 Unix처럼 보이지만 Windows에서는 모든 것을 실행합니다. 특히 MSYS는 /bin
을 MSYS를 설치하는 드라이브와 디렉토리에 매핑합니다. MSYS를 C:\MSYS
에 설치 한 경우 MSYS /bin
디렉토리는 실제로 C:\MSYS\bin
입니다.
/bin
을 MSYS PATH
환경 변수에 추가하면 MSYS는 C:\MSYS\bin
디렉터리를 검색합니다. /bin
을 SETX
명령을 사용하여 Windows PATH
환경에 추가하면 Windows는 \bin
디렉토리에서 현재 드라이브를 검색합니다.
아마 파이썬의 표준 버전은 파이썬의 표준 Windows 포트입니다. 정상적인 Windows 응용 프로그램이므로 PATH
환경 변수를 예상대로 해석하지 않습니다. 경로에 /bin
이 있으면 현재 드라이브의 \bin
디렉터리를 검색합니다. wget
은 현재 디렉토리의 C:\MSYS\bin
이 아니고 \bin
이므로 Python에서 실행하려고하면 오류가 발생합니다.
MSYS 셸에서 Windows 명령을 실행하면 MSYS가 자동으로 PATH
을 Windows 호환 형식으로 변환하여 MSYS 경로 이름을 Windows 경로 이름으로 변경합니다. 즉, MSYS 셸에서 Python을 실행하여 Python 스크립트를 작동시킬 수 있어야합니다.
먼저 cmd.exe에서 실행할 수 있는지 확인하십시오. 전체 경로를 사용하여/bin을 환경 변수 PATH에 추가하거나 추가 할 수 있습니다. – Yuan
시도한 코드를 보여주십시오. 'shell = True'를 사용한다면, 그것을 사용하지 않으려 고 했습니까? 또는'COMSPEC' 환경 변수를 디폴트'cmd.exe' 대신에 MinGW 쉘로 설정 하시겠습니까? – abarnert
내가 mingw에서 'echo $ PATH'를하면/bin이 환경 경로에있다. 나는 그 mingw가 'wget'을 인식하지만 윈도우의 명령 프롬프트는 그렇지 않다. 따라서 내 비단뱀도 마찬가지입니다. Windows 경로 변수에 \ bin을 추가하려고 시도했지만 작동하지 않는 것 같습니다. 나는 'setx path "% path %; \ bin"'을 사용했습니다. 변경 사항이 경로에 표시되지만 명령 프롬프트는 여전히 'wget'또는 'wget.exe'를 인식하지 못합니다. 또한 일반적으로 명령 프롬프트를 통해 \ bin으로 이동할 수없는 것처럼 보일 수 있습니다. 이것에 대한 어떤 생각? –