programing

Python Setup 비활성화 경로 길이 제한 장단점?

instargram 2023. 4. 22. 08:25
반응형

Python Setup 비활성화 경로 길이 제한 장단점?

최근에 Python 3.7을 설치했는데 셋업 마지막에 "패스 길이 제한 비활성화" 옵션이 있습니다.이걸 해야 할지 말아야 할지 모르겠어.

이것을 하는 것의 장점과 단점은 무엇입니까?소리만 들어도 항상 비활성화해야 합니다.

이 옵션을 선택하여 경로 길이 제한을 제거할 것을 권장합니다.회피할 수 있는 문제를 디버깅하는 시간을 절약할 수 있습니다.

여기 내가 그것을 알게 된 일화가 있다.

프로그램(Windows 머신상의 C# 코드)의 컴파일중에, 다음의 에러가 표시되기 시작했습니다.

error MSB3541: Files has invalid value "long\path\filename". The specified path,
  file name, or both are too long. The fully qualified file name must be less than
  260 characters, and the directory name must be less than 248 characters.

이 오류로 인해 프로젝트를 빌드할 수 없었고, 이 문제에 대한 유일한 명백한 해결책은 경로/파일 이름을 줄이는 것이었습니다.이 버그는 NTFS(Windows의 파일 시스템)에 내장된 제한 사항으로 판명되었습니다.Windows에서 260자 경로 길이 제한이 있는 이유는 무엇입니까?

NTFS 파일 시스템에 내장된 제한으로 인해 몇 십 년이 지난 후 Windows 10(https://learn.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file#maximum-path-length-limitation),에서는 Unix 기반 시스템에는 적용되지 않음)에서 수정되었습니다.그러기 위해서는 레지스트리(또는 그룹 정책) 설정이 필요합니다.Python 옵션을 사용하면 Python 라이브러리에서 Python 옵션을 비활성화할 수 있으므로 많은 번거로움을 덜 수 있습니다.

이 옵션을 유효하게 하면,

a) 긴 파일/디렉토리 이름 및 경로를 사용하는 경우 이전 버전의 Windows 10 이하를 사용하는 시스템에서 프로그램의 호환성을 해제합니다.

b) 긴 파일/디렉토리 이름 및 경로를 사용하는 경우 이 옵션이 활성화되지 않은 Windows 10 머신의 프로그램을 중단합니다.

다음 두 가지 질문에 모두 답변해 주십시오.

비활성화 시킬까요?

즉, 260자 이상의 경로로 작업할 때만 문제가 되고 대부분의 사람들은 문제가 되지 않기 때문입니다.

패스 길이 제한을 무효로 하는 경우의 장점과 단점은 무엇입니까?

장점

  • 260자를 넘는 파일 패스를 조작해도 에러가 발생하지 않기 때문에, 패스 길이에 대한 염려가 경감됩니다.
  • 디버깅을 쉽게 할 수 있습니다.

단점

  • 비활성화 시 기술적 부작용 없음
  • 팀워크를 하면 머신에서는 코드가 동작하지만 머신에서는 동작하지 않는 버그가 발생할 수 있습니다.패스 제한을 무효로 하고 있기 때문입니다.
  • 그것을 무력화시키는 것은 부정적인 인간 행동 부작용을 초래할 수 있다.긴 경로를 활성화하면 팀 내에서 경로 이름 및 폴더 구조에 대한 잘못된 명명 동작이 촉진될 수 있습니다.제한은 사람들로 하여금 그들의 길을 줄이도록 강요한다.

예를 들어, 다음과 같은 경로를 가진 팀에서 작업한 적이 있습니다. 이름을 길게 지정하면 파일 경로를 읽을 수 없게 됩니다.

c:/project_name/unity/files/assets/UI_2.0/levelname/season2_lease_levelname_ui_2/PROJECT_S2_MENU_UI/PROJECT_S2_hover_button_UI_블루 프로젝트

설명.

장점과 단점을 이해하려면 경로 길이 제한이 무엇인지 이해하는 데 도움이 됩니다.

윈도 패스 길이

Windows 패스는 파일 또는 폴더를 찾을 위치를 나타내는 문자열이라는 것은 이미 알고 있을 것입니다.

★★C:\Program Files\7-Zip

폴더 또는 파일 이름이 길면 문자열이 길어집니다.

★★C:\Program Files\Microsoft Update Health Tools

다른 폴더 내에 폴더가 많을수록 문자열도 길어집니다.

★★C:\Program Files\Microsoft Update Health Tools\Logs

파일 경로 길이 오류

서로에 많은 폴더가 있고 이름이 긴 경우 코드에서 이 경로를 사용하려고 할 때 오류가 발생할 수 있습니다.

이는 윈도우즈에 경로 길이 제한이 있기 때문입니다.Windows 10 의 업데이트에서는, 이 제한을 무효로 할 수 있습니다.기본적으로는 그렇지 않습니다.

이 제한을 사용하지 않도록 설정하면 컴퓨터에서 오류 없이 더 긴 경로를 사용할 수 있습니다.

왜 이런 일이 일어날까요?

이전 윈도 API에서는 어플리케이션을 올바르게 작성하면 앞으로도 계속 동작할 것이라고 약속했습니다.

260자를 넘는 파일명을 Windows 로 허가하면, 기존의 애플리케이션(Windows API 를 올바르게 사용)에 장해가 발생합니다.

Microsoft는 완전한 32,768개의 경로 이름을 사용하는 방법을 개발했지만 이를 위해 새로운 API 계약을 작성해야 했습니다.이것은 Windows 10의 업데이트입니다.

이유에 대해 자세히 읽다

나는 이것을 단순하고 직설적으로 유지하고 있다.

"경로 길이 제한 사용 안 함" 옵션은 윈도우즈에서 처리할 수 있는 파일 경로의 최대 길이를 나타냅니다.이 제한을 사용 불가능으로 설정하면 파일 경로가 길어질 수 있으므로 이름이 매우 길거나 깊이 중첩된 디렉토리에 저장된 파일을 사용할 때 유용합니다.그러나 일부 프로그램, 특히 긴 파일 경로를 지원하지 않도록 설계된 오래된 프로그램과의 호환성 문제도 발생할 수 있습니다.

일반적으로 특별히 필요한 경우가 아니면 경로 길이 제한을 해제할 필요가 없습니다.필요한 것인지 아닌지 확실하지 않은 경우 활성화 상태로 두는 것이 좋습니다.

일반적으로 사용하지 않도록 설정하는 것은 좋지 않습니다. 특히 사용하지 않을 때 발생할 수 있는 프로그램이 있는 경우에는 더욱 그렇습니다.
오래된 프로그램이 많이 있어 사용하지 않도록 설정한 것을 잊어버릴 수 있습니다.또한 다시 활성화하면 스크립트에서 긴 파일 경로를 사용하는 프로그램이 고장나거나 사용하지 않게 되어 시간과 디버깅이 낭비될 수 있습니다.

그러나 이 기능을 보호하기 위해 특정 환경에서는 특히 하위 폴더에 하위 폴더를 만드는 것이 중요한 환경에서 유용합니다.특히, 이것은 많은 자산을 가진 게임을 만들 때 도움이 됩니다.그러나 하위 폴더(및 파일)를 줄이는 방법은 여러 가지가 있습니다. 복사하여 붙여넣기를 하지 않으면 일반적으로 경로를 쉽게 입력할 수 있습니다(예:C:\my_game\assts\01\plyr\walk_01.png타이핑이 보다C:\my_epic_game_featuring_my_awesome_character\assets\…)

경로 제한을 사용하지 않도록 설정할 때 특정 프로그램이 중단되는 것을 걱정할 필요가 없는 가상 머신이나 다른 OS를 사용하는 경우 이 기능을 해제하는 것이 유용할 수 있지만, 다른 모든 작업을 수행할 경우 수정보다 더 많은 버그가 발생할 가능성에 주의하십시오.

언급URL : https://stackoverflow.com/questions/51624449/python-setup-disabling-path-length-limit-pros-and-cons

반응형