편집 : Ulf Rompe의 의견에 따라 "0"대신 "1"을 사용하는 것이 중요합니다 . 그렇지 않으면 sys.path 가 중단 됩니다.
나는 지금 꽤 오랫동안 (1 년 이상) 파이썬을 해왔고, 사람들 sys.path.append()
이 sys.path.insert()
. 보여 드리겠습니다.
PyWorkbooks (내 컴퓨터에 설치됨)라는 모듈에서 작업하고 있지만 동시에 PyWorkbooks를 통합하는 다른 모듈 (PyJob이라고 가정 해 보겠습니다)에서 작업하고 있다고 가정 해 보겠습니다. PyJob에서 작업하는 동안 수정중인 PyWorkbooks에서 오류를 발견하므로 개발 버전을 가져오고 싶습니다.
둘 다 작업하는 방법은 여러 가지가 있지만 (예를 들어, PyWorkbooks 프로젝트를 PyJob 안에 넣을 수 있습니다), 때로는 여전히 경로를 가지고 플레이해야합니다. 그러나 PyWorkbooks가있는 폴더에 간단히 할 수는 없습니다sys.path.append()
. 왜? 파이썬이 설치된 PyWorkbooks를 먼저 찾을 것이기 때문입니다!
이것이 sys.path.insert (1, path_to_dev_pyworkbooks)를 수행해야하는 이유입니다.
요약해서 말하자면:
sys.path.append(path_to_dev_pyworkbooks)
import PyWorkbooks # does NOT import dev pyworkbooks, imports installed one
또는:
sys.path.insert(1, path_to_dev_pyworkbooks) # based on comments you should use **1 not 0**
import PyWorkbooks # imports correct file
이로 인해 과거에 저에게 몇 가지 중단이 발생했으며, (커뮤니티로서) sys.path.insert(1, path)
수동으로 경로를 삽입하는 것처럼 추천하기 시작하면 정말 좋겠습니다. 원하는 경로라고 말하는 것이 안전하다고 생각합니다. 쓰다!
아니면 뭔가 잘못 되었나요? 때때로 저를 괴롭히는 질문이며 공개적으로 원했습니다!
sys.path.insert(1, dev_folder)
지만 여전히 개발 모듈을 찾지 못하고 설치된 모듈 만 사용합니다. 이 문제를 어떻게 해결합니까?