PYSONPATH에 디렉터리를 영구적으로 추가하시겠습니까?
사용할 때마다sys.path.append
, 새로운 디렉토리가 추가될 것이다.그러나 일단 python을 닫으면 리스트가 이전(기본값?) 값으로 되돌아간다.디렉터리를 영구적으로 추가하는 방법PYTHONPATH
?
(Mac 또는 GNU/리눅스 디스트로의) bash를 사용하는 경우, 이 기능을 추가하십시오.~/.bashrc
export PYTHONPATH="${PYTHONPATH}:/my/other/path"
환경 변수에 새 디렉터리를 추가해야 하는 경우PYTHONPATH
, 이전의 내용에서 결장으로 분리한다.어떤 형태로든 유닉스(Unix)에서 사용 중인 셸에 적합한 시작 스크립트에서 이 작업을 수행할 수 있음(.profile
또는 좋아하는 쉘에 따라 무엇이든지) 해당 쉘에 따라 달라지는 명령어를 사용하여 Windows에서는 시스템 GUI를 통해 원하는 목적을 위해 수행할 수 있다.
superuser.com
좀 더 자세히 물어보기에 더 좋은 장소일 수 있다. 즉, 선택한 플랫폼과 쉘에서 환경 변수를 어떻게 풍부하게 하는지에 대한 구체적인 사항이 필요한 경우, 프로그래밍 질문이 아니기 때문이다.
조하를 조하를 조작하는 것이다.PYTHONPATH
경로 구성 파일을 생성할 수도 있다.먼저 Python이 이 정보를 검색하는 디렉터리를 확인하십시오.
python -m site --user-site
어떤 이유에서인지 이것은 파이썬 2.7에서는 효과가 없는 것 같다.여기서 사용할 수 있는 항목:
python -c 'import site; site._script()' --user-site
그런 다음.pth
추가할 경로를 포함하는 해당 디렉터리의 파일(존재하지 않을 경우 디렉터리를 생성).
예를 들면 다음과 같다.
# find directory
SITEDIR=$(python -m site --user-site)
# create if it doesn't exist
mkdir -p "$SITEDIR"
# create new .pth file with our path
echo "$HOME/foo/bar" > "$SITEDIR/somelib.pth"
Windows에서 사용 가능
- Windows에서 Python 2.7을 사용하여 Python 설정 폴더로 이동하십시오.
- Lib/site-package를 여십시오.
- 이 폴더에 예.pth 빈 파일을 추가하십시오.
- 각 행에 하나씩 파일에 필요한 경로를 추가하십시오.
그러면 스크립트에서 해당 경로에 있는 모든 모듈을 볼 수 있을 겁니다.
다른 사용자가 여전히 혼란스러울 경우, Mac에 있는 경우 다음을 수행하십시오.
- 터미널 열기
- 유형
open .bash_profile
- 표시되는 텍스트 파일에서 끝에 다음 줄을 추가하십시오.
export PYTHONPATH=$PYTHONPATH:foo/bar
- 파일을 저장하고 터미널을 다시 시작하면 끝
pythonrc 파일을 통해 경로를 추가할 수 있으며, pythonrc는 기본적으로 Linux에서 ~/.pythonrc로 설정되어 있다.
import sys
sys.path.append('/path/to/dir')
당신은 또한 설정 할 수 있다.PYTHONPATH
환경 변수(Global rc 파일)~/.profile
Mac 또는 Linux에서 또는 제어판 -> System -> Advanced 탭 -> Environment Variables를 통해 창에서.
좀 더 자세한 설명을 하기 위해 파이썬은 위와 여기를 사용하여 자동으로 검색 경로를 구성한다.site.py
+ steps에 하는 sys.lib/python<version>/site-packages
게다가lib/site-python
sys.prefix의 값을 얻을 수
python -c 'import sys; print(sys.prefix)'
사이트.그런 다음 py 스크립트는 플랫폼에 따라 다음과 같은 다수의 디렉토리를 추가한다./usr/{lib,share}/python<version>/dist-packages
/usr/local/lib/python<version>/dist-packages
검색 경로 및 이 경로에 대한 검색<package>.pth
특정 추가 검색 경로를 포함하는 구성 파일.예를 들어 쉬운 설치는 시스템별 파일에 추가된 설치된 패키지 컬렉션을 유지 관리(예: Ubuntu에서)./usr/local/lib/python2.7/dist-packages/easy-install.pth
치 않은 할 수 이 여러 개 일반적인 시스템에는 sys.path에 예기치 않은 경로를 설명할 수 있는 .pth 파일이 여러 개 있다.
python -c 'import sys; print(sys.path)'
그래서 사람들은 .pth 파일을 만들고 이러한 디렉토리들 중 하나를 넣을 수 있다(위에서 언급된 sentir를 포함한다).이것은 대부분의 패키지가 PYSONPATH를 사용하는 것과 반대로 sys.path에 추가되는 방법인 것 같다.
참고: OSX에서는 site.py에서 'firm builds'를 위해 추가 검색 경로를 추가했다(그러나 python의 일반적인 명령줄 사용에는 효과가 있는 것임). /Library/Python/<version>/site-packages
: (예: Python2).7의 경우:/Library/Python/2.7/site-packages/
타사 패키지가 설치되어야 하는 위치(dir의 README 참조).그래서 그 안에 추가적인 검색 경로를 포함하는 경로 구성 파일을 추가할 수 있다. 예를 들어, "파일"을 만들 수 있다./Library/Python/2.7/site-packages/pip-usr-local.pth
그 안에 들어 있는/usr/local/lib/python2.7/site-packages/
그리고 시스템 파이썬이 검색 경로를 추가할 겁니다
MacOS에서는 특정 라이브러리에 경로를 제공하는 대신의 루트 프로젝트 폴더에 대한 전체 경로 지정
~/.bash_profile
예를 들어, 나의 하루를 다음과 같이 만들었다.
export PYTHONPATH="${PYTHONPATH}:/Users/<myuser>/project_root_folder_path"
이 작업을 수행한 후:
source ~/.bash_profile
Linux에서는 환경 변수를 처리할 필요 없이 패키지에서 PYSONPATH 디렉토리로 심볼 링크를 생성할 수 있다.다음과 같은 경우:
ln -s /your/path /usr/lib/pymodules/python2.7/
나에게 있어 그것은 내가 그것을 바꾸었을 때 효과가 있었다..bash_profile
일요일 중. 변경 중.bashrc
내가 셸을 다시 시작할 때까지만 파일이 작동했어
python 2.7의 경우 다음과 같이 표시되어야 한다.
export PYTHONPATH="$PYTHONPATH:/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python"
의 .bash_profile
파일
추가export PYTHONPATH="${PYTHONPATH}:/my/other/path"
~/.csurrc는 다음과 같은 경우에 작동하지 않을 수 있다.PYTHONPATH
현재 존재하지 않음(때문에):
).
export PYTHONPATH="/my/other/path1"
export PYTHONPATH="${PYTHONPATH}:/my/other/path2"
위와 같은 것을 나의 ~/.bashrc에 덧붙여 우분투 16.04에 대한 트릭을 해 주었다.
썸머모의 대답을 덧붙이기 위해서, 당신은 또한 그 선을 당신의 것에 추가할 수 있다.~/.bash_profile
또는~/.profile
이것은 오래된 해답이 있는 이 실의 업데이트다.
MAC-OS Catalina 또는 더 새로운 (>= 10.15)를 사용하는 사람들을 위해, 그것은 새로운 터미널이라는 이름이 도입되었다.zsh
(노인을 대신하는 사람)bash
).
나는 이러한 변화로 인해 위의 답변에 약간의 문제가 있었고, 파일을 만들어 어느 정도 해결했다.~/.zshrc
파일 디렉토리를 에 붙여넣기$PATH
그리고$PYTHONPATH
그래서 먼저 이렇게 했다.
nano ~/.zshrc
편집자가 열었을 때 다음 내용을 붙여넣었다.
export PATH="${PATH}:/Users/caio.hc.oliveira/Library/Python/3.7/bin"
export PYTHONPATH="${PYTHONPATH}:/Users/caio.hc.oliveira/Library/Python/3.7/bin"
저장한 다음 터미널을 다시 시작하십시오.
중요: 위의 경로가 내 컴퓨터의 경로로 설정되어 있으니, 당신은 그것을 당신의 비단뱀에 맞춰야 할 것이다.
아래 스크립트는 순수 파이썬이기 때문에 모든 플랫폼에서 작동한다.그것은 교차 플랫폼이 작동하도록 하기 위해 여기에 문서화된 Pathlib Path를 이용한다.한 번 실행하면 커널을 다시 시작하면 끝이다.https://medium.com/@arnaud.bertrand/s-search-path-with-pth-files-2a41a4143574에서 영감을 얻었다.실행하기 위해서는 일부 시스템 파일을 수정하기 때문에 관리자 권한이 필요하다.
from pathlib import Path
to_add=Path(path_of_directory_to_add)
from sys import path
if str(to_add) not in path:
minLen=999999
for index,directory in enumerate(path):
if 'site-packages' in directory and len(directory)<=minLen:
minLen=len(directory)
stpi=index
pathSitePckgs=Path(path[stpi])
with open(str(pathSitePckgs/'current_machine_paths.pth'),'w') as pth_file:
pth_file.write(str(to_add))
PYSONPATH에 새 경로 추가는 다음을 통해 수동으로 수행된다.
터미널에서 ~/.csvrc 프로필에 경로 추가:
vim ~/.bashrc
다음 항목을 프로파일에 붙여넣으십시오.
export PYTHONPATH="${PYTHONPATH}:/User/johndoe/pythonModule"
그런 다음 터미널에서 코드를 실행할 때 bashrc 프로필을 소싱하십시오.
source ~/.bashrc
이게 도움이 되길 바래.
Windows Vista, Python 3.5에서 영구적으로 추가됨
시스템 > 제어판 > 고급 시스템 설정 > 고급(탭) 환경 변수 > 시스템 변수 > (변수 열에 PYSONPATH가 보이지 않는 경우) > (클릭) 신규 > 변수 이름: PYSONPATH > 변수 값:
변수 값에 디렉터리를 입력하십시오.블루페퍼스의 답변 세부사항이다.
Python 3.6.4에서는 다음과 같은 파이썬 세션에서 sys.path를 유지할 수 있다.
import sys
import os
print(str(sys.path))
dir_path = os.path.dirname(os.path.realpath(__file__))
print(f"current working dir: {dir_path}")
root_dir = dir_path.replace("/util", '', 1)
print(f"root dir: {root_dir}")
sys.path.insert(0, root_dir)
print(str(sys.path))
나는 당신이 가상환경과 가상환경 래퍼를 사용하는 것을 강력히 제안한다. 그렇지 않으면 당신은 당신의 진로를 혼란스럽게 할 것이다.
bash에서 zsh로 전환할 때 Python 경로 문제 해결
bash에서 zsh로 전환했을 때 Python Path 문제에 부딪쳤다.
해결책은 간단했지만 나는 알아차리지 못했다.
핍이 보여줬어 대본이 blah blah
또는 패키지 blah blah
되어 있다~/.local/bin
그 길이 아닌 것 같군
이 문제에 대한 몇 가지 해결책을 읽은 후, 나는 내 의견을 열었다..zshrc
해결책이 이미 존재했다는 걸 알아내는 거지
나는 간단히 줄 하나를 풀어야 했다.
한번 보세요.
안드레이 데스티안 답에 영감을 받아, 여기 내 버전이 있다.이를 통해 사이트 패키지 디렉토리에 많은 추가 경로를 만들 수 있다.
import os
# Add paths here. Then Run this block of code once and restart kernel. Paths should now be set.
paths_of_directories_to_add = [r'C:\GIT\project1', r'C:\GIT\project2', r'C:\GIT\project3']
# Find your site-packages directory
pathSitePckgs = os.path.join(os.path.dirname(os.__file__), 'site-packages')
# Write a .pth file in your site-packages directory
pthFile = os.path.join(pathSitePckgs,'current_machine_paths.pth')
with open(pthFile,'w') as pth_file:
pth_file.write('\n'.join(paths_of_directories_to_add))
print(pthFile)
나는 여기 아나콘다 환경에서 이것을 할 수 있는 해결책을 찾았다: https://datacomy.com/python/anaconda/add_folder_to_path/
단지:
conda develop /your_path
A <-> B 사이의 최단 경로는 직선이다.
import sys
if not 'NEW_PATH' in sys.path:
sys.path += ['NEW_PATH']
참조URL: https://stackoverflow.com/questions/3402168/permanently-add-a-directory-to-pythonpath
'IT이야기' 카테고리의 다른 글
웹 팩 정의플러그인이 node_env 변수를 설정/읽지 않음 (0) | 2022.03.28 |
---|---|
TypeScript 2.3에서 새로 추가된 지원을 사용하여 TypeScript에서 반응 어린이 유형을 어떻게 제한하십니까? (0) | 2022.03.28 |
Laravel/VueJS - 블레이드 내부의 여러 구성 요소가 제대로 작동하지 않음 (0) | 2022.03.28 |
Vuex를 사용하여 어레이의 개체를 업데이트하는 중 (0) | 2022.03.28 |
반응 - useState의 setter 기능을 변경할 수 있는가? (0) | 2022.03.28 |