실행중인 Python 바이너리에 torch
이 설치되어 있지 않습니다. 그것은 은 모듈 검색 경로에 torch
라는 이름의 디렉토리를 가지고, 그리고는 namespace package로 처리됩니다
이
$ pwd
/some/path
$ python3 -c 'import torch; print(torch); print(torch.__path__)'
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'torch'
$ mkdir torch
$ python3 -c 'import torch; print(torch); print(torch.__path__)'
<module 'torch' (namespace)>
_NamespacePath(['/some/path/torch'])
그 안에 __init__.py
파일이 존재하지 않고 모든 디렉토리, 모듈 검색 경로에 위치, 처리됩니다 네임 스페이스로 제공된 경우 다른 이름의 파이썬 모듈이나 패키지는 검색 경로의 어느 곳에서도 찾을 수 없습니다.
$ ls -ld torch/
drwxr-xr-x 2 mjpieters users 68 Nov 23 13:57 torch/
$ mkdir -p additional_path/torch/
$ touch additional_path/torch/__init__.py
$ PYTHONPATH="./additional_path" python3 -c 'import os.path as p, sys; print(*(t for t in (p.join(e, "torch") for e in sys.path) if p.exists(t)), sep="\n")'
torch
/some/path/additional_path/torch
$ PYTHONPATH="./additional_path" python3 -c 'import torch; print(torch); print(torch.__path__)'
<module 'torch' from '/some/path/additional_path/torch/__init__.py'>
['/some/path/additional_path/torch']
(가) 위 sys.path
나열 torch
디렉토리가 먼저 additional_path/torch
다음에 있음을 보여줍니다
이
은
torch
는 파이썬 바이너리를 위해 설치 한 경우 로컬
torch
디렉토리가 있다면, 그것은 문제가되지 않는다는 것을 의미합니다 , 후자는 가져 오기를 시도 할 때
torch
모듈로로드됩니다. 이는 네임 스페이스 패키지를로드하기 전에 파이썬이 최상위 모듈과 패키지에 우선 순위를 부여하기 때문입니다.
현재 파이썬 바이너리에 대해 토치를 올바르게 설치해야합니다 (project homepage 참조). pip
를 사용하는 경우 대신 -m
스위치를 사용하여 파이썬 바이너리를 사용할 수 있습니다 :
python3.5 -m pip install http://download.pytorch.org/whl/cu80/torch-0.2.0.post3-cp35-cp35m-manylinux1_x86_64.whl
python3.5 -m pip install torchvision
그래서 홈페이지 지침 python3.5 -m pip
와 함께 사용하는 pip3
교체; python3.5
은 파이썬 바이너리의 전체 경로가 될 수도 있습니다.
최신 버전으로 올바른 download.pytorch.org
URL을 사용하십시오.
디렉토리를 따로 이동할 필요는 없지만 위치를 알기를 원하지 않는 경우 위에 표시된 것처럼 print(torch.__path__)
을 사용하십시오.
는 다시, 당신이 로컬 torch
디렉토리에 __init__.py
파일이 할 경우, 그것은 일반 패키지가되고는 정상 site-packages
위치에 pip
설치 패키지를 마스크 것 있습니다. 이러한 패키지 또는 로컬 torch.py
단일 파일 모듈이있는 경우 이름을 바꿔야합니다.이 경우 진단 정보가 다르게 보입니다.
$ pwd
/some/path
$ python3 -c 'import torch; print(torch); print(torch.__path__)'
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'torch'
$ mkdir torch
$ touch torch/__init__.py # make it a package
$ python3 -c 'import torch; print(torch); print(torch.__path__)'
<module 'torch' from '/some/path/torch/__init__.py'>
['/some/path/torch']
$ rm -rf torch/
$ touch torch.py # make it a module
$ python3 -c 'import torch; print(torch); print(torch.__file__)'
<module 'torch' from '/some/path/torch.py'>
/some/path/torch.py
차이점을 유의하십시오. 위의 네임 스페이스 패키지는 <module 'name' (namespace)>
을 사용하고 일반 패키지는 )
, while a plain module uses
`을 사용합니다.
이러한 패키지 및 모듈 (이름 공간 패키지 아님)이 먼저 발견되고 검색이 중지됩니다. 발견 된 패키지 또는 모듈이 원하는 패키지 또는 모듈이 아닌 경우, 옆으로 옮기거나 이름을 바꿔야합니다.
'>>> 도움 (토치)'또는'>>> torch' 또는'>>> 디렉토리 (토치)'등 당신이 우리가 여기있어 –
보다 자세한 내용은이 :'패키지 토치에 대한 도움말 : NAME 토치 패키지 내용물 FILE (내장) (END)' –
'>>> 토치 <모듈 '토치'(네임 스페이스)>' –